Não é possível usar o comando sudo (Ubuntu 16.04.1 LTS)

3

Quando digito sudo no terminal, recebo:

sudo: unable to stat /etc/sudoers: Permission denied
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

Mais informações:

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
    
por Felipe P. 18.01.2017 / 18:39

1 resposta

2

Execute pkexec chmod 755 /etc para corrigir isso.

Como aço sugerido , este erro é porque /etc tem as permissões erradas. As permissões mostradas de ls -ld /etc devem ser semelhantes:

drwxr-xr-x

Mas a sua aparência é:

drw-rw-r-x

Isso impede que sudo transite em /etc para acessar /etc/sudoers .

A mensagem de erro "permissão negada" tentando recuperar metadados (ou seja, para stat) um arquivo quase sempre significa que o arquivo está faltando ou diretórios que o levam não podem ser percorridos e quando você executou ls no arquivo , foi demonstrado que existe.

Eu testei isso (em uma máquina virtual) quebrando as permissões em /etc com chmod ug-x e consegui produzir sua mensagem de erro exata. (Você não deve executar chmod com ug-x nele - é assim que eu deliberadamente quebrei as permissões, não como corrigi-las.)

Para corrigir as permissões em /etc , conceda permissões executáveis aos proprietários de usuários e grupos. A ausência dessas permissões é a causa desse problema. Além disso, por padrão, /etc não precisa que o proprietário do grupo receba permissões de gravação, portanto, a menos que você saiba que deseja isso, recomendo que você altere isso também.

Este comando irá redefinir /etc para as permissões padrão:

pkexec chmod 755 /etc

Isso deve funcionar para você, já que você pode executar outros comandos como root com pkexec . Outros usuários que encontrarem isso pesquisando normalmente poderão corrigi-lo da mesma maneira, mas para sistemas sem pkexec (ou onde pkexec não funcionará), pode ser necessário inicializar no modo de recuperação ou a partir de um CD ativo / DVD / USB para corrigir as permissões. Você não precisa fazer isso, no entanto. Basta executar esse comando simples e sudo deve funcionar novamente.

    
por Eliah Kagan 18.01.2017 / 20:08