Когда тип sudo команда Терминалом затем показывает ошибку, Как зафиксировать это
sudo: /etc/sudoers is owned by uid 1000, should be 0
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
Возвратите владельца для укоренения:
pkexec chown root:root /etc/sudoers /etc/sudoers.d -R
Или использование эти visudo
команда для обеспечения общей правильности файлов (благодаря @KasiyA):
pkexec visudo
если вы установили и имеете пароль root, сначала запустите следующую команду
$ su - root
, она запросит пароль root, а затем выполните следующие команды одну за другой
chown root:root /etc/sudoers
chmod 440 /etc/sudoers
chown -R root:root /etc/sudoers.d
chmod 755 /etc/sudoers.d
chmod 440 /etc/sudoers.d/*
Еще один вариант, если у вас нет пароля для пользователей root
или ubuntu
. У меня были толстые пальцы (больше раз, чем я хотел бы признать), и в итоге я сделал это:
sudo chown -R owner:group /
вместо этого:
sudo chown -R owner:group .
Это почти всегда было в контексте виртуальной машины VirtualBox, управляемой Vagrant, с Ubuntu без головы, поэтому YMMV. У меня никогда не было хорошего решения до сих пор, но это, кажется, легко помогает.
Восстановить
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
chown -R root:root /etc/sudoers.d
chown root:root /etc/sudoers
chmod 440 /etc/sudoers
exit 0
После установки исправления команды в /etc/rc.local можно удалить.