На этот вопрос уже есть ответ:
Я изменил владение без root в / usr / local / bin
и в / usr / bin
.
Однако теперь я не могу использовать sudo. Когда я пытаюсь использовать sudo, я получаю следующее сообщение:
sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set
Я просмотрел онлайн и попробовал решения, использующие chown
, но ничего не работает.
Когда я набираю эту команду:
ls -l /usr/bin/sudo
Я получаю вывод:
-rwsr-xr-x 1 swirlydino root 136808 May 29 06:32 /usr/bin/sudo
Также, когда я набираю эту команду:
ls -ld /usr /usr/bin
Я получаю следующий результат:
drwxr-xr-x 10 root root 4096 Jun 14 10:15 /usr
drwxr-xr-x 2 datax root 36864 Aug 18 14:26 /usr/bin
Итак, как я могу изменить право владения с swirlydino на корень?
Sudo должны принадлежать корню и иметь набор uid набор битов. Набор uid бит маски разрешения эффективно делает двоичный файл выполненным как пользователь, который владеет им, неважно, кто вызвал его. Таким образом sudo может изменить uid любого процесса, который он порождает.
Путем изменения владения на/usr/bin Вы в значительной степени полили из шланга свою установку. Много двоичных файлов полагается на suid, и владение ими пользователем так или иначе открывает Вас для большого количества интересных нападений.
https://en.wikipedia.org/wiki/Setuid имеет хорошее объяснение того, как suid работает подробно.
В этой точке лучшая подсказка должна переустановить человечность... :)