Я запустил sudo chmod 777 -R /usr/bin
, так как у меня там было несколько программ, которые я хотел, чтобы можно было запускать с большей легкостью, без постоянного ввода моего пароля root, но теперь /usr/bin/sudo
продолжает выдавать ошибку при каждом запуске sudo
. А именно эта ошибка:
sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set
и я застрял, как это исправить.
Следующая процедура может также быть выполнена от начальной загрузки до Root выбора Режима Восстановления. Затем после начальной загрузки в корень, введите в следующем для монтирования диска в Read / Запись, таким образом, изменения могут быть внесены:
mount -o remount,rw /
Я рекомендовал бы после первого ответа на этом сайте загрузиться к Живому CD так, чтобы можно было смонтировать жесткий диск и восстановить файл (файлы). Остановитесь после совершающего нападки шага № 5 так, чтобы Ваш жесткий диск был смонтирован как пользователь root.
Как я могу восстановить личинку? (Как вернуть Ubuntu после установки Windows?)
после того, как диск смонтирован как пользователь root, необходимо смочь ввести из окна терминала:
chmod 4755 /usr/bin/sudo
установить "suid" назад для sudo файла.
Следующий список является всеми файлами в /usr
это должно иметь набор "suid": (Я оставлю их как список, который можно скопировать и вставить как потребность быть),
chmod 4755 /usr/bin/pkexec
chmod 4755 /usr/bin/sudo
chmod 4755 /usr/bin/mtr
chmod 4755 /usr/bin/traceroute6.iputils
chmod 4755 /usr/bin/gpasswd
chmod 4755 /usr/bin/lppasswd
chmod 4755 /usr/bin/passwd
chmod 4755 /usr/bin/newgrp
chmod 4755 /usr/bin/chsh
chmod 4755 /usr/bin/chfn
РЕДАКТИРОВАНИЕ 2:
Следующие файлы имеют полномочия rwxr-sr-x
и может быть сброшен копией и вставкой следующего в терминал после возвращения хоста: (некоторые могли бы отличаться затем Ваша система),
sudo chmod 2755 /usr/bin/mail-unlock
sudo chmod 2755 /usr/bin/dotlockfile
sudo chmod 2755 /usr/bin/ssh-agent
sudo chmod 2755 /usr/bin/wall
sudo chmod 2755 /usr/bin/dotlock.mailutils
sudo chmod 2755 /usr/bin/chage
sudo chmod 2755 /usr/bin/bsd-write
sudo chmod 2755 /usr/bin/crontab
sudo chmod 2755 /usr/bin/expiry
sudo chmod 2755 /usr/bin/mlocate
sudo chmod 2755 /usr/bin/mail-touchlock
sudo chmod 2755 /usr/bin/mail-lock
Так как все, что Вы выполнили, было chmod 777 -R /usr/bin
и нет никаких подкаталогов в том каталоге, все файлы за исключением ссылок и очевидных выше в списке с "suid" набором полномочий на них, остальная часть файлов в том каталоге имеет настройки разрешения -rwxr-xr-x
(или 755). Вы могли сбросить те полномочия в те файлы, не касаясь "suid" файлов или ссылок путем ввода:
sudo chmod go-w /usr/bin/*
это установит group
и other
полномочия к r-x
и оставьте ссылки в покое как lrwxrwxrwx
. НЕ ВЫПОЛНЯЙТЕ AS chmod 755, поскольку это испортит полномочия, мы зафиксировали!
Править: измененный на "suid", как был указан мне.
Я думаю, что единственный соответствующий ответ должен переустановить Вашу систему. Иначе Вы будете навсегда обнаруживать вещи, которые не работают, как они должны.
необходимо восстановить любые важные файлы, в которых Вы нуждаетесь от него сначала, создаете резервную копию их, и затем переустанавливаете.
Никогда не выполняет далеко идущее chmod -R
по системным файлам. Существует только слишком много вещей, которые абсолютно требуют, чтобы полномочия были установлены определенный путь, который повредится, если они будут установлены на что-то еще, даже скажут, 777
.
Это включает много исполняемых файлов, которые требуют "setuid", как указано в другом ответе. Но это также включает приложения и сервисы, которые проверяют, чтобы удостовериться, что их полномочия файла настраиваются надежно и отказываются работать, если они небезопасны. Это распространено из сетевых демонов, например.
нет до сих пор никакого простого способа сказать Ubuntu/Debian восстанавливать весь полномочия файла к их заводским настройкам. Это был бы грязный ручной процесс, чтобы начать восстанавливать их один за другим. Если Вы просто возвратились и починили вещи, которые были на самом деле повреждены, Вас все еще оставляют с ужасно небезопасной системой, особенно если это находится в сети и выполняет какие-либо серверы.