localhost em sudoers

6

Não há chance de um ataque interno, portanto, gostaria de conceder privilégios de sudo aos usuários no computador local usando sudoers . Eu tentei estas linhas separadamente:

%admin localhost=(ALL) NOPASSWD: ALL
%admin 127.0.0.1=(ALL) NOPASSWD: ALL

Mas os sudoers não parecem reconhecer localhost ou 127.0.0.1 .

Existe uma alternativa e, em caso afirmativo, quão seguro seria? Um atacante remoto poderia obter privilégios de usuário local usando o cron ou algum outro método?

    
por Zaz 29.07.2010 / 12:27

3 respostas

10

%admin ALL=(ALL) NOPASSWD: ALL

A lista de hosts restringe a regra sudo aos hosts em que uma interface de rede possui um nome ou endereço na lista. Como cada host possui uma interface de loopback, cada host deve corresponder à sua regra; na verdade, o sudo ignora a interface de loopback ao verificar as listas de host, portanto nenhum host corresponde à sua regra; De qualquer maneira, especificar o host como localhost não é útil.

O Sudo não faz nenhuma autenticação de rede: a lista de hosts está lá para que você possa implantar um único arquivo sudoers em várias máquinas e conceder aos usuários permissões diferentes em máquinas diferentes.

O Cron também não faz autenticação de rede. Um usuário remoto ganharia privilégios de usuário por meio de um servidor de rede ou cliente mal configurado ou vulnerável (http, ftp, samba, nfs, snmp, ssh,…).

    
por 29.07.2010 / 20:44
0

sudo não sabe nada sobre a interface de loopback (localhost / 127.0.0.1), mas conhece todas as outras interfaces. Se sua máquina tiver pelo menos uma dessas interfaces, ela será considerada em uma rede. Assim, durante a configuração da interface - geralmente feita durante a instalação do sistema operacional - você era obrigado a definir um "nome do host", ou talvez um fosse atribuído automaticamente.

Este "nome do host" pode ser acessado através do comando "hostname" ou do arquivo / etc / hostname.

Como consequência,
(i) sua máquina tem uma interface de loopback mas também certamente um "nome de host"
(ii) sudo só pode usar esse "nome de rede"
(iii) se você substituir "localhost=" por "< seu nome de host >" no seu arquivo sudoers, a regra irá corresponder e tudo funcionará conforme o esperado.

    
por 19.08.2018 / 10:54
0

Parece que o seu nome de host não é um "localhost". Veja o comando output hostname ou verifique o conteúdo do seu / etc / hostname

    
por 20.01.2016 / 15:03