При попытке обновить свои репозитории я получаю следующую ошибку:
avinash@avinash-VirtualBox:~$ sudo apt-get update
sudo: unable to stat /etc/sudoers: No such file or directory
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
Кажется, что я случайно удалил свой файл /etc/sudoers
. /etc/sudoers
Файл на самом деле принадлежит пакету sudo
, поэтому я пытаюсь переустановить sudo
с помощью pkexec
, но это не сработает.
avinash@avinash-VirtualBox:~$ pkexec apt-get install sudo
Reading package lists... Done
Building dependency tree
Reading state information... Done
sudo is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 301 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue [Y/n]? y
Setting up sudo (1.8.6p3-0ubuntu3.1) ...
WARNING: /etc/sudoers not present!
chown: cannot access ‘/etc/sudoers’: No such file or directory
dpkg: error processing sudo (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
sudo
E: Sub-process /usr/bin/dpkg returned an error code (1)
avinash@avinash-VirtualBox:~$
А также я пытался,
avinash@avinash-VirtualBox:~$ pkexec apt-get install --reinstall sudo
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 301 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
E: Internal Error, No file name for sudo:amd64
Как заставить команду sudo
снова работать?
После того, как я сделал резервное копирование для /etc/sudoers
файл:
sudo mv /etc/sudoers{,.bak}
я получаю те же ошибки как в Вашем случае.
, Если Вы используете
pkexec apt-get install sudo
, не будет работать, потому что apt-get
будет видеть что:
sudo is already the newest version.
, Если Вы используете:
pkexec apt-get install --reinstall sudo
не будет также работать, потому что /etc/sudoers
файл, как находят, не удален и заменен.
, Но если Вы используете:
pkexec apt-get purge sudo
pkexec apt-get install sudo
, как описано в этот ответ , все будет работать как очарование. Я могу сказать это, потому что я просто тестирую его снова.
Так, нет никакого смысла потерять время и загрузить Вашу систему с живым диском.
Просто начальная загрузка от Ubuntu живой диск и копия /etc/sudoers
файл к установленному разделу Ubuntu /etc
каталог.
Начальная загрузка Ubuntu живая скидка и щелчок пробуют опцию Ubuntu на запуске.
команда Run sudo blkid
для знания идентификатора раздела установленного Ubuntu.
Монтируют, что раздел установленного Ubuntu на определенном каталоге как ниже,
sudo mkdir /media/foo
sudo mount /dev/sdaX /media/foo # /dev/sdaX installed Ubuntu's partition id.
Теперь копируют файл живого диска sudoers
в /etc
каталог раздела установленного Ubuntu.
sudo cp /etc/sudoers /media/foo/etc
Теперь начальная загрузка от жесткого диска (Загружают Вашу ОС Ubuntu).It будет работать.
Вот необработанное содержание /etc/sudoers
на Ubuntu 13.10:
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# 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
<час> И полномочия:
-r--r----- 1 root root
Для применения тех это chmod 440 /etc/sudoers
и chown root:root /etc/sudoers
выполниться pkexec nano /etc/sudoers
и вставка
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# 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
Я просто хотел добавить это простое решение для переустановки sudo Если вы удалили sudo с помощью:
sudo apt-get remove sudo
Вы можете установить его снова. Используйте:
su -
Введите пароль root, а затем:
apt-get update
apt-get install sudo
выйдите