На этот вопрос уже есть ответ здесь:
Итак, я сделал глупую вещь ...
Я устанавливал какое-то программное обеспечение (Java SE 7, если вы должны знать) из архива, и мне надоело использовать sudo
, поэтому я пошел и сменил владельца моего каталога / usr
себе.
$ sudo chown -R sammy /usr
Ой!
Поскольку sudo
находится в / usr / bin /
, он также сменил владельца. Теперь я больше не могу им пользоваться. Я случайно попал в sudo-Catch 22? Я не могу использовать apt-get install
или другие важные функции среды моей оболочки.
$ sudo
sudo: must be setuid root
Есть ли способ изменить владельца этого каталога (а также подкаталогов) обратно на root
?
Перезагрузите компьютер, загрузитесь в recovery (в конечном итоге вы должны быть пользователем root без необходимости вводить пароль). Перейдите к chown -R
. Я думаю, что это должно работать. Сообщите о том, как это происходит.
Чувак, ты действительно это сделал, все /usr
имеют практически необходимые двоичные файлы, но давайте сначала восстановим sudo
:
Как пользователь root в консоли восстановления, вы должны перемонтировать файловую систему как чтение / запись. сначала:
chown root:root /usr/bin/sudo
chmod u+s /usr/bin/sudo
Затем перезагрузите компьютер и попробуйте войти в систему, если вы получите больше ошибок «Должно быть suid», повторите процесс, используя sudo из tty:
sudo chmod u+s /path/to/the/binary/you/screwed
[ 1110] В следующий раз будьте осторожны и попробуйте использовать -R
--recursive
с детскими перчатками.