Я случайно выполнил следующую команду
sudo chown [username] -hR /
Теперь sudo su
получает ошибку:
sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set
Как решить эту проблему?
Как вы'прочитаете в этом ответе на SO, эта проблема не такая сложная, как ее представляют. Я заставил команду `sudo снова работать без переустановки, следуя этим простым шагам:
chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo
.Это сделает все возможное и гораздо быстрее и менее болезненно, чем "ядерный вариант", рекомендуемый в других ответах.
Если пароль root не установлен, вы можете загрузиться в Recovery Mode, чтобы установить его.
Сделайте резервную копию данных и переустановите.
Возможно, это выглядит экстремально, но это не просто sudo
. Вы разрушили структуру разрешений всей вашей файловой системы. Некоторые из других ответов могут заставить sudo
работать, но игнорирование всей проблемы приводит к последующей катастрофе.
Вы можете попробовать зеркалировать владельцев с другой установки, но есть случаи (например, /var/
), которые сильно зависят от того, что у вас на самом деле установлено. Если вы хотите получить представление о масштабе проблемы, я уже пытался помочь кому-то решить подобную проблему. Исправление ручное, долгое и может легко оставить вашу систему незащищенной или сломанной.
Ковыряние в этом беспорядке займет значительно больше времени, чем чистая установка.
Здесь уже было несколько проездов от людей, которые не понимают серьезности ситуации. Для них это выглядит как большая куча ненужной работы, что-то вроде того, что говорит недобросовестный сантехник или механик, чтобы содрать с вас деньги за большую работу.
Если вы только изменили права на `/usr/bin/sudo', то, конечно, просто исправьте это. Но этот вопрос касается полного изменения системы. Все файлы (кроме тех, что предназначены только для выполнения) теперь принадлежат пользователю. Все, что запускает пользователь (например, браузеры, браузерные эксплойты), может перезаписывать системные файлы, шпионить за вами, извлекать любые данные. Это необходимо исправить. Как сказано выше, это сложно. Самый простой способ - переустановка.
Поэтому, пожалуйста, не ленитесь. Разрешения файловой системы помогают вам оставаться в безопасности, исправьте их.
перейти в режим восстановления, удерживайте нажатой кнопку <и>Эку</роз> при загрузке системы.
выберите корневой вариант в длинный список вы можете увидеть после входа в режим восстановления (это на самом деле корневой оболочки)
команда тип - Маунт -о перемонтировать /` (или в Recovery вы можете нажать на опцию жратвы. Это помогло мне получить права на чтение и запись файловой системы. В основном это обновление в режиме чтения/записи файловой системы, так как команда была't работа для меня изначально)
Это файловая система перемонтировать для чтения и режим записи.
Чаун - R команда-корня:корневой каталог /usr` эта команда будет меняться в собственности от "пользователей", чтобы снова корень рекурсивно
теперь еще у меня была проблема с команду sudo
, так что я снова последовал шаг 1,2,3 и выполнена команда chmod 4755 /usr/Бен/судо`
Теперь я действительно думаю, что повторной установке было бы очень и "ядерное оружие"и
Была такая же проблема на моей капли на цифровой океан.
судо: /usr/Бен/суда
должны принадлежать Уид 0
и улучшить
набор бит.
Ниже приведены команды, которые я выполнить и перезагрузка после.
chown -R root:root /usr/bin/sudo
chmod -R a=rx,u+ws /usr/bin/sudo
chown -R root:root /usr/lib/sudo/sudoer.so
chmod -R a=rx,u+ws /usr/lib/sudo/sudoer.so
Надеюсь, что это помогает.
К сожалению, если у вас нет полной резервной копии, вероятно, лучшее, что вы можете сделать на данном этапе, это переустановить систему.
Подумайте о том, что вы изменили права собственности на все файлы на одного пользователя, полностью нарушив парадигму безопасности вашей системы.....
Если вы поищете на этом сайте, то найдете много похожих проблем с chmod, как, например, https://askubuntu.com/questions/265080/how-can-i-recover-from-chmod-r-a-wrx-command.
Вышеперечисленные способы не't работа для меня, потому что я не мог'т "и снова войдите в систему как root и" (неизвестный пароль) Но у меня есть корневой оболочки путем редактирования
vi /etc/lightdm/lightdm.conf
autologin-user=root
greeter-show-manual-login=true
После перезагрузки я наконец-то смог запустить
chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo
Я не смог изменить языка.файл conf` под управлением системы. Я исправил таким образом:
/и т. д/языка/языка.conf
и на установкуавтологина пользователя=корень зазывала-шоу-ручной-логин=истина
Чаун корня:корневой каталог /usr/Бен/судо && команду chmod 4755 /usr/Бен/судо
/etc/языка/языка.conf
и (вы не'т хотите автологина как корень каждый раз, который будет очень ненадежно и опасно) Я изменил файл /usr/lib/ для корневой владельца, но судо выполняется только с правами root в терминале.
Шаг первый: корень Су шаг два: кд /usr/lib в шаг три: Чаун -Р корень:корень судо
и что это такое. Просто обратите внимание, у вас есть ту запустить корень Су каждый раз, когда вы хотите использовать sudo.