'sudo' не работает после изменения разрешений каталога '/ usr'

5

Недавно мне пришлось изменить права доступа к папке /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, многие предлагали переустановку. Я не предпочитаю переустановку. так же есть ли другое решение?     

задан Bharat 29.05.2012 в 07:40
источник

3 ответа

7

В 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 имеет предложил ) , вы можете использовать режим восстановления .

    
ответ дан Eliah Kagan 29.05.2012 в 08:24
источник
1

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

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

  

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

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

    
ответ дан 23 93 26 35 19 57 3 89 29.05.2012 в 08:19
0

установите Пользователи и группы , используя это
перейдите в раздел Управление группами
и добавьте вас в группу sudo

    
ответ дан geoh 29.05.2012 в 08:07