Não é possível executar o comando sudo no linux

0

Estou usando o Linux CentOS, mas de repente não consegui executar o comando sudo. Eu tenho erros abaixo. Mesmo com o usuário root, ocorreu o mesmo erro.

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

Abaixo está a permissão para este arquivo:

 ls -l /etc/sudoers
-rwxr-xr-x 1 root root 4241 Jun  9 20:36 /etc/sudoers
# which sudo
/usr/bin/sudo
# ls -l /usr/bin/sudo
--ws-wx-wx. 1 root root 130712 Jun 10  2014 /usr/bin/sudo

O que há de errado com o sistema? Como posso consertar isso?

EDIT1

Por favor, veja abaixo a saída do comando:

# ls -Z /etc/sudoers
-r--r----- root root ?                                /etc/sudoers

Eu executei o chmod 440 neste arquivo, mas parece que a permissão está quebrada.

EDIT2

Eu corro o comando abaixo para definir a permissão do / etc / sudoers, mas ainda não está correto:

root@Cool-Too ~]# chmod 440 /etc/sudoers
[root@Cool-Too ~]# ll /etc/sudoers
-r--r----- 1 root root 4241 Aug 14 22:16 /etc/sudoers
[root@Cool-Too ~]# ll -Z /etc/sudoers
-r--r----- root root ?                                /etc/sudoers
    
por Zhao Yi 14.08.2016 / 15:20

2 respostas

2

Suas permissões estão muito desmascaradas.

Eles devem ser semelhantes a:

-r--r----- 1 root root   4188 Mar 31 11:30 /etc/sudoers
---s--x--x 1 root root 130720 Mar 31 13:09 /usr/bin/sudo

Para corrigir isso, como root

chmod 4111 /usr/bin/sudo
chmod 440 /etc/sudoers

Se você vir um sinal + na saída ls -l , isso significa que também há ACLs definidas; estes devem ser removidos

setfacl -b /usr/bin/sudo /etc/sudoers

(você não parece ter esse problema; incluo-o por completo)

Como suas permissões foram quebradas, é possível que as etiquetas do SELinux também tenham sido quebradas. Você deve verificar se os rótulos do SELinux estão corretos com ls -Z :

-r--r-----. root root system_u:object_r:etc_t:s0       /etc/sudoers
---s--x--x. root root system_u:object_r:sudo_exec_t:s0 /usr/bin/sudo

Estes devem poder ser corrigidos com restorecon

restorecon -v /usr/bin/sudo /etc/sudoers

Finalmente, você pode ter uma instalação totalmente problemática (por exemplo, configuração do PAM, /etc/sudo.conf ). Você pode verificar quais arquivos foram modificados:

rpm --verify sudo

Se isso criar algum arquivo que esteja desativado, talvez você queira excluí-los e reinstalar o sudo.

por exemplo

rm /etc/sudo.conf /etc/pam.d/sudo*
yum reinstall sudo

(Isso requer uma configuração yum em funcionamento, então não faça isso se o repo não funcionar!)

    
por 14.08.2016 / 15:30
1

Se sudo não funcionar, você poderá se tornar um usuário raiz com su -

Mais tarde, seja root, você pode reinstalar o sudo usando estes comandos abaixo:

yum remove sudo

yum install sudo

Você precisa se adicionar ao arquivo / etc / sudoers, digite:

visudo

Conceder permissão completa ao usuário via viak:

vivek ALL=(ALL) ALL

Salve e feche o arquivo. Mais tarde, você tem sudo e pode se tornar um usuário root usando:

sudo -i

Se não funcionar, use

sudo -s

    
por 14.08.2016 / 15:38