«sudo» не работает после изменения прав доступа к каталогу «/ usr»

Недавно мне пришлось изменить права доступа к папке /usr. Теперь весь sudo не работает. Если я пытаюсь обновить мою систему с помощью этой команды:

sudo apt-get update

я получаю следующее сообщение:

sudo: /usr/lib/sudo/sudoers.so must be only be writable by owner
sudo: fatal error, unable to load plugins

Поэтому я попытался изменить права доступа к папке, открыв Nautilus как root с помощью эта команда

gksudo nautilus

Но ничего не произошло. Наутилус не открылся. Это чрезвычайная ситуация, так как весь sudo не работает. когда я пытался найти решение от Google, многие предлагали переустановить. Я не предпочитаю переустановку. так есть ли другое решение?

5
задан 29 May 2012 в 10:18

3 ответа

установить пользователей и групп с помощью , этого
перейти к Управление группами
и добавить вас в sudo группа

0
ответ дан 29 May 2012 в 10:18

Я попытался бы загрузиться в режиме восстановления и установить разрешения обратно к тому, что они были.

Перезагрузка - выберите второй пункт меню, чтобы перейти в режим восстановления.

недавно мне пришлось изменить разрешения для папки / usr папки

Что попросило вас изменить разрешения для всей папки / usr?

0
ответ дан 29 May 2012 в 10:18

На самом деле в Ubuntu есть два механизма для выполнения административных задач. sudo является одним из них, и он и его графические интерфейсы (такие как gksu и gksudo ) не будут работать, пока вы не исправите проблема с разрешениями.

Другой механизм - PolicyKit . В зависимости от того, что именно вы сделали с вашими правами доступа к файлам, вполне вероятно, что вы все еще можете восстановить с помощью PolicyKit для запуска команд как root.

Команда pkexec запускает любую (неграфическую) команду как root (при условии, что пользователь, вызывающий ее, является администратором в системе). pkexec способен запускать графические команды (например, nautilus), как и root, но это довольно нетривиально, так как вам нужно настроить файлы конфигурации для них, описывающие, как они должны выполняться и чем они являются должно быть разрешено делать. Поэтому лучше всего использовать командную строку для решения этой проблемы ... по крайней мере, до точки, где sudo снова работает. (Затем вы можете запустить gksu nautilus, чтобы получить файловый браузер root, если вам удобнее использовать его для рекурсивного редактирования разрешений на файлы.)

Я не знаю точно, что вы сделали с вашими разрешениями поэтому мне трудно дать вам конкретную команду pkexec для запуска, чтобы решить проблему. Но вы можете исправить конкретную проблему, о которой в настоящее время жалуется sudo. В нем говорится:

sudo: /usr/lib/sudo/sudoers.so must be only be writable by owner

Поэтому удалите разрешения на запись group и other (не изменяя разрешения на запись owner) для этого файла:

pkexec chmod go-w /usr/lib/sudo/sudoers.so

Тогда вы увидите если sudo работает (запустив какую-то безобидную команду, например sudo ls).

Если вам нужно выполнить другие операции с правами доступа к файлам из командной строки с помощью chmod, см. man chmod .

(Кстати, вот еще одна, связанная с этим ситуация, в которой полезно знать о pkexec .)

Если у вас возникли проблемы с тем, чтобы pkexec работал для этого, пожалуйста, Не стесняйтесь комментировать здесь, и я постараюсь оказать дальнейшую помощь. Но вы должны знать, что даже если этот метод не работает, вам не нужно переустанавливать Ubuntu.

Вместо этого вы можете исправить проблему с живого CD / DVD-диска Ubuntu или с USB-системы, потому что будет работать живая система - sudo будет работать на ней - и вы можете смонтировать раздел Ubuntu и измените разрешения таким образом.

Или в качестве третьего варианта (как ForestPiskie предложил ) , вы можете использовать режим восстановления . ]

0
ответ дан 29 May 2012 в 10:18

Другие вопросы по тегам:

Похожие вопросы: