sudo: /usr/lib/sudo/sudoers.so должен принадлежать uid 0

9

Всякий раз, когда я пытаюсь сделать что-либо вообще, что требует моего пароля, он возвращает это:

u7ur7l3@ubuntu:~$ sudo
sudo: /usr/lib/sudo/sudoers.so must be owned by uid 0
sudo: fatal error, unable to load plugins
u7ur7l3@ubuntu:~$

Поэтому я не могу установить что-либо из Менеджера Software Center / диспетчера пакетов или запускать любые команды в терминале, которые требуют моего пароля. Я могу войти в систему, но это в значительной степени.

Я случайно изменил права доступа к некоторым файлам, а затем изменил еще несколько попыток его исправить: /. Теперь я полностью потерял, что делать.

Вот что произошло, когда я попытался снова запустить sudo с помощью pkexec:

u7ur7l3@ubuntu:~$ pkexec chown root /usr/lib/sudo/sudoers.so
Error getting authority: Error initializing authority: Error calling StartServiceByName for org.freedesktop.PolicyKit1: GDBus.Error:org.freedesktop.DBus.Error.Spawn.ExecFailed: Failed to execute program /usr/lib/dbus-1.0/dbus-daemon-launch-helper: Success 

u7ur7l3@ubuntu:~$ sudo ls
sudo: /usr/lib/sudo/sudoers.so must be owned by uid 0 sudo: fatal error, unable to load plugins

И чтобы изменить разрешения, я использовал Root Actions в качестве функции dolphin service / plugin, поэтому история не показывает изменения разрешения.

Я просто понял, что звуки больше не работают. Когда я вхожу в Phonon, мои настройки по умолчанию и устройства воспроизведения даже не существуют. Также у меня нет возможности выключения, я могу выйти или выйти.

    
задан 7UR7L3 02.04.2013 в 06:33
источник

1 ответ

16

Собственность по крайней мере одного из ваших важных системных файлов является неправильным. Это плохо. если это произошло со многими системными файлами (возможно, в какой-то момент вы запустили большую команду sudo chown с флагом -R ?), это может привести к ряду других системных ошибок и нестабильности. Итак, , если вы недавно установили Ubuntu , вы можете переустановить его как Адам Хиткот предлагает .

Но вам не нужно переустанавливать эту проблему. . Вместо этого просто исправьте право собственности на этот файл. Если после этого вы получите ошибки в других файлах, вы также можете их исправить (хотя, возможно, вам придется рассказать нам, что такое сообщения об ошибках, поэтому мы также можем сказать вам, как их исправлять).

sudo не работает, но использование sudo является один из двух способов для для выполнения действий как root на Ubuntu. Другой - PolicyKit .

Запустите эту команду, которая использует PolicyKit (через pkexec ) для изменения права собственности /usr/lib/sudo/sudoers.so на root (т. е. uid 0):

pkexec chown root /usr/lib/sudo/sudoers.so

Затем попробуйте снова использовать sudo . Вы можете запустить что-то тривиальное, например sudo ls , и посмотреть, появилось ли сообщение об ошибке.

Наконец, я рекомендую запустить history , чтобы показать все команды, которые вы выполнили. Надеемся, что вы перечислите все команды, которые вы выполнили, которые изменили разрешения. Предполагая, что sudo теперь работает, я рекомендую опубликовать новый вопрос, включая вывод history , чтобы получить помощь, отменив all права собственности на файл и разрешения, которые вы сделали.

Если pkexec не работает ...

Вы пробовали pkexec , и это не сработало. Поскольку ни sudo , ни PolicyKit не работают, чтобы вы могли выполнять действия с правами root, вам придется загрузиться в режим восстановления и получить корневую оболочку. Для этого удерживайте Shift во время загрузки вашего компьютера, чтобы убедиться, что вы получаете видимое меню загрузки GRUB. Выберите запись, содержащую слова режим восстановления (как правило, вы должны выбрать ближайший к вершине, который имеет эти слова). Затем вы получите меню, в котором у вас есть несколько опций - выберите вариант для перехода к корневой оболочке.

Подробные инструкции по доступу к корневой оболочке в режиме восстановления:

  • Как загрузиться в корневую оболочку?

Как только у вас есть корневая оболочка, запустите:

chown root /usr/lib/sudo/sudoers.so

Если вы получили сообщение об ошибке, связанной с изменением файла или файловой системы, перезагрузите его readwrite:

mount -rw -o remount /

(Источник для идеи пересоединения и как это сделать: этот в основном не связанный ответ .)

Затем после запуска этой команды mount запустите указанную выше команду chown и проверьте, не работает ли она.

Как только вы закончите в режиме восстановления, вы можете перезагрузиться, выполнив:

reboot

sudo должен работать или хотя бы дать некоторую ошибку other .

Наконец, обратите внимание, что с учетом выявленных вами ошибок, вероятно, что многие файлы теперь имеют неправильное право собственности или разрешения. Было бы идеально, если бы вы могли определить, какие файлы вы изменили таким образом. Например, если вы можете понять, что все файлы находятся в паре определенных папок, возможно, вам удастся исправить весь объем недавних проблем, которые у вас были.

Переустановка, безусловно, является опцией, но особенно если все, что вы изменили, было (а не разрешения, которые несколько сложнее восстановить, поскольку они меняются больше), должно быть возможно просто установить разрешения назад рекурсивно к их первоначальным владельцам (возможно, обычно к корню) и полностью отменить ущерб.

Получение sudo работы снова является первым шагом. Надеемся, что вышеупомянутая техника позволит вам это сделать.

    
ответ дан Eliah Kagan 02.04.2013 в 06:55