Arquivo acidentalmente excluído / etc / sudoers

2

Recebo o seguinte erro ao tentar atualizar meus repositórios

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

Parece que eu acidentalmente excluí meu arquivo /etc/sudoers . O arquivo /etc/sudoers na verdade pertence ao pacote sudo , então tento reinstalar sudo by pkexec , mas não funciona.

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:~$ 

E também tentei,

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

Como posso fazer com que o comando sudo funcione novamente?

    
por Avinash Raj 23.03.2014 / 16:47

4 respostas

2

Inicie apenas a partir do disco live do Ubuntu e copie o arquivo /etc/sudoers para o diretório /etc da partição do Ubuntu instalada.

  • Inicialize o Ubuntu ao vivo e clique em tentar a opção do Ubuntu na inicialização.

  • Execute o comando sudo blkid para saber o ID da partição do Ubuntu instalado.

  • Monte a partição do Ubuntu instalada em um diretório específico, como abaixo,

    sudo mkdir /media/foo
    sudo mount /dev/sdaX /media/foo     # /dev/sdaX installed Ubuntu's partition id.
    
  • Agora copie o arquivo sudoers do disco ao vivo para o diretório /etc da partição do Ubuntu instalada.

    sudo cp /etc/sudoers /media/foo/etc
    
  • Agora inicialize a partir do disco rígido (Inicialize seu sistema operacional Ubuntu). Ele funcionará.

por Avinash Raj 23.03.2014 / 16:47
5

Depois de fazer um backup para /etc/sudoers file:

sudo mv /etc/sudoers{,.bak}

Eu recebo os mesmos erros, como no seu caso.

Se você usar

pkexec apt-get install sudo

não funcionará porque apt-get verá que:

sudo is already the newest version.

Se você usa:

pkexec apt-get install --reinstall sudo

também não funcionará porque /etc/sudoers file não foi encontrado para ser removido e substituído.

Mas se você usar:

pkexec apt-get purge sudo
pkexec apt-get install sudo

como descrito em esta resposta , tudo funcionará como um encanto. Eu posso dizer isso porque eu apenas testo novamente.

Portanto, não faz sentido perder tempo e inicializar seu sistema com um disco ativo.

    
por Radu Rădeanu 24.03.2014 / 10:41
1

Aqui está o conteúdo bruto de /etc/sudoers no 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

E as permissões:

-r--r----- 1 root root

Para aplicá-los, é chmod 440 /etc/sudoers e chown root:root /etc/sudoers

    
por MrVaykadji 23.03.2014 / 17:55
0

execute pkexec nano /etc/sudoers

e cole

#
# 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
    
por Kerem Er 14.03.2018 / 16:01