Когда я ввожу sudo на терминале, я добираюсь:
sudo: unable to stat /etc/sudoers: Permission denied
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
Подробнее:
ls -ld / /etc /etc/sudoers
drwxr-xr-x 24 root root 4096 Dez 21 22:44 /
drw-rw-r-x 162 root root 12288 Jan 18 15:13 /etc
-r--r----- 1 root root 746 Jan 18 14:21 /etc/sudoers
pkexec visudo
:
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# User privilege specification
root ALL=(ALL:ALL) ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
pkexec chmod 755 /etc
зафиксировать это.Как steeldriver предложенный, эта ошибка состоит в том потому что /etc
имеет неправильные полномочия. Полномочия, показанные от ls -ld /etc
должен быть похожим:
drwxr-xr-x
Но Ваш взгляд как:
drw-rw-r-x
Это предотвращает sudo
от пересечения /etc
к доступу /etc/sudoers
.
"Разрешение отклонило" сообщение об ошибке, просто пытаясь получить метаданные по (т.е. к статистике), файл почти всегда означает, что файл отсутствует, или продвижение каталогов к нему не может быть пересечено, и когда Вы работали ls
на файле это, как показывали, существовало.
Я протестировал это (на виртуальной машине) путем повреждения полномочий на /etc
с chmod ug-x
, и смог произвести Ваше точное сообщение об ошибке. (Вы не должны работать chmod
с ug-x
на нем - это - то, как я сознательно повредил полномочия, не, как зафиксировать их.)
Исправить полномочия на /etc
, дайте пользователю и владельцам группы исполнимые полномочия. Отсутствие тех полномочий является причиной этой проблемы. Кроме того, по умолчанию /etc
не нуждается во владельце группы, чтобы быть данным полномочия записи, поэтому если Вы не знаете о желании этого я рекомендую возвратить это также.
Эта команда сбросит /etc
к полномочиям по умолчанию:
pkexec chmod 755 /etc
Это должно работать на Вас, так как Вы смогли выполнить другие команды как корень с pkexec
. Другие пользователи, которые находят это поиском, будут обычно мочь зафиксировать его тот же путь, но для систем без pkexec
(или где pkexec
не будет работать), может быть необходимо загрузиться в режим восстановления или с живого CD/DVD/USB для фиксации полномочий. Вы не должны должны быть делать это, все же. Просто выполненный, что одна простая команда, и sudo
должен работать снова.
Может быть, это поможет, поскольку этот метод у меня сработал
Если вы не можете открыть свой файл через,
sudo vi /etc/sudoers
Сначала вы должны предоставить разрешения, указанные выше, с помощью [ Eliah] [1], а также
pkexec chmod 755 /etc
Затем попробуйте открыть файл sudoers с помощью
pkexec vi /etc/sudoers
Отредактируйте свои изменения, затем сохраните и выйдите. Попробуйте сейчас команду sudo,
sudo apt update
Надеюсь, это поможет.