Как я могу восстановить владение sudo/root в системных каталогах?
Я пытаюсь выяснить права владения и разрешения по умолчанию для моей установки Ubuntu. Я также пытаюсь выяснить, является ли ошибочная передача прав собственности пользователя Роберту на системные файлы ошибочной. Это слишком сложно, чтобы попытаться отменить то, что я сделал для моей системы и просто переустановить?
Сначала немного предыстории. Я думаю, что сделал неправильную команду, когда пытался изменить разрешения на 2-м диске ext4, на котором ранее была установлена Ubuntu. Должно быть, я случайно внес изменения в мой текущий каталог /, не осознавая этого. Признаки проблемы в том, что у меня больше нет доступа к sudo в моей текущей системе.
robert@robert-KJ379AA-ABA-a6400f:/$ sudo ls -al
sudo: /etc/sudoers is owned by uid 1000, should be 0
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
Я вижу, что "Роберт" теперь владеет всеми файлами в / etc: Примеры:
drwxr-xr-x 3 robert root 4096 Apr 9 12:27 firefox
drwxr-xr-x 4 robert root 4096 Aug 23 2012 fonts
drwxr-xr-x 3 robert root 4096 Aug 23 2012 foomatic
-rw-r--r-- 1 robert root 766 Apr 11 12:39 fstab
-rw-r--r-- 1 robert root 664 Apr 9 11:26 fstab~
drwxr-xr-x 2 robert root 4096 Mar 29 2012 fstab.d
-rw-r--r-- 1 robert root 664 Apr 11 12:36 fstab.original
-rw-r----- 1 robert fuse 216 Oct 18 2011 fuse.conf
-rw-r--r-- 1 robert root 3343 Apr 19 2012 gai.conf
drwxr-xr-x 5 robert root 4096 Aug 23 2012 gconf
Вот права доступа и владельца для каталога /
drwxr-xr-x 25 root root 4096 May 5 15:26 .
drwxr-xr-x 25 root root 4096 May 5 15:26 ..
drwxr-xr-x 2 robert root 4096 Apr 10 22:55 bin
drwxr-xr-x 3 robert root 4096 May 5 15:26 boot
drwxr-xr-x 2 robert root 4096 Apr 9 11:30 cdrom
drwxr-xr-x 15 root root 4560 May 5 17:28 dev
drwxr-xr-x 150 robert root 12288 May 5 17:45 etc
drwxr-xr-x 3 robert root 4096 Apr 9 11:37 home
lrwxrwxrwx 1 robert root 33 May 5 15:26 initrd.img -> /boot/initrd.img-3.2.0-41-generic
lrwxrwxrwx 1 robert root 33 Apr 9 12:26 initrd.img.old -> /boot/initrd.img-3.2.0-40-generic
drwxr-xr-x 22 robert root 4096 Apr 24 16:58 lib
drwxr-xr-x 2 robert root 4096 Apr 24 16:58 lib64
drwx------ 2 robert root 16384 Apr 9 11:26 lost+found
drwxr-xr-x 5 root root 4096 May 5 17:28 media
drwxr-xr-x 2 root root 4096 Apr 19 2012 mnt
drwxr-xr-x 2 root root 4096 Aug 23 2012 opt
dr-xr-xr-x 198 root root 0 May 5 12:26 proc
drwx------ 8 root root 4096 Apr 17 02:11 root
drwxr-xr-x 23 root root 820 May 5 17:43 run
drwxr-xr-x 2 root root 4096 Apr 24 16:58 sbin
drwxr-xr-x 2 root root 4096 Mar 5 2012 selinux
drwxr-xr-x 2 root root 4096 Aug 23 2012 srv
drwxr-xr-x 13 root root 0 May 5 12:27 sys
drwxrwxrwt 10 root root 4096 May 5 19:37 tmp
drwxr-xr-x 10 root root 4096 Aug 23 2012 usr
drwxr-xr-x 14 root root 4096 May 5 17:26 var
lrwxrwxrwx 1 root root 29 May 5 15:26 vmlinuz -> boot/vmlinuz-3.2.0-41-generic
lrwxrwxrwx 1 root root 29 Apr 9 12:26 vmlinuz.old -> boot/vmlinuz-3.2.0-40-generic
drwxrwxr-- 1 robert robert 4096 Apr 9 01:37 windows1
Может ли кто-нибудь подтвердить, что "robert" не должен владеть ни одной из этих директорий чуть ниже root? Есть ли здесь что-то, что позволяет легко решить проблему? Если да, есть ли у вас какие-либо советы или ресурсы, как это исправить? Благодарю.
4 ответа
Сделать корневым владельцем всего в /etc
:
sudo chown root:root -R /etc
Вам нужно будет загрузить live cd и запустить
sudo chown root:root -R /media/$USER/*/etc
Вам нужно будет открыть папку в файловом браузере, чтобы смонтировать диск
Запустите команду ниже:
pkexec chown root:root -R /etc
Теперь напишите свой пароль.
Лучше всего переустановить все пакеты, и это позволит вам исправить ваши разрешения. Это займет некоторое время, но это единственный способ исправить все.
sudo apt-get --reinstall install $(dpkg --get-selections | grep install | grep -v deinstall | cut -f1)
Вы можете увидеть больше об этом на этом сайте, включая некоторые исправления для типичных проблем с выполнением этой команды.
Имейте в виду, что вы захотите перезагрузиться, как только команда завершится, или странные вещи будут (или, по крайней мере, могут) произойти с различными версиями библиотек.
Ну просто запустите эти команды
pkexec apt-get install sudo
затем
pkexec chmod 0440 /etc/sudoers.d/README
И это все