Editando o arquivo sudoers para restringir os comandos de um usuário

8

É possível editar o arquivo sudoers para que um usuário possa usar o sudo para qualquer comando, exceto para um especificado? Eu inverto é verdade, acredito, que o arquivo sudoers pode ser configurado para que um usuário possa apenas executar uma determinada lista de comandos.

EDITAR: os comandos que eu realmente quero tirar são parar e reiniciar ... isso me faz pensar que há chamadas especiais de sistema para parar e reinicializar. Você pode tirar chamadas do sistema de um usuário? Se não, é porque o sistema de permissão unix abstrai as chamadas do sistema negligenciando isso?

    
por devin 07.07.2009 / 04:30

9 respostas

5

Outra maneira de ver isso é que, se os usuários tiverem acesso irrestrito irrestrito, eles poderão facilmente obter acesso root completo.

Embora você possa trabalhar em algo, seria facilmente contornado.

O SElinux é um caminho possível, embora seja preciso muito para aprender.

    
por 07.07.2009 / 04:48
3

Para fazer o que você quiser (manter o formulário do usuário em execução, reinicializar e desligar), você terá que examinar o material do SElinux para impedir que o usuário faça essas configurações. Caso contrário, o usuário apenas executará / bin / sh primeiro e então executará / bin / halt sem passar pelo sudo.

    
por 07.07.2009 / 05:24
3

Registre tudo o que eles fazem via sudo, presumivelmente, você tem alguma maneira de fazer o ponto para não fazer isso novamente.

Defaults logfile=/var/log/sudolog 

registra todos os comandos que eles executam, o google um pouco para mais informações.

    
por 07.07.2009 / 05:45
3

Sim e não ... Você pode impedir que um usuário execute um arquivo específico precedendo o arquivo com um estrondo (!), mas não é possível impedir que um usuário copie o arquivo para outro local e, em seguida, execute-o a partir daí.

User_Alias    ADMINS = peter, bob, bunny, %operator

ADMINS        ALL    = !/usr/bin/su, !SHELLS

Concedendo acesso a arquivos específicos como outro usuário

    
por 07.07.2009 / 04:40
2

Se o usuário realmente quiser reiniciar, ele encontrará uma maneira. sudo -s , sudo -i , sudo $EDITOR /etc/sudoers ... pode ser usado para remover suas restrições.

E em sistemas Unix-like você tem permissão para reiniciar o sistema desde que você seja root (uid 0). Se você encontrar uma maneira de restringir essas chamadas do sistema, pode fazer isso:

user$ echo b | sudo tee /proc/sysrq-trigger

ou uma variação do mesmo. Ou reinicie causando um pânico no kernel. Ou ...

Por fim, ter acesso root normalmente permite remover as restrições existentes.

    
por 07.07.2009 / 09:54
1

claro, como visudo de chamada raiz e impedir que 'user' execute / sbin / halt:

user ALL=(ALL) NOPASSWD: !/sbin/halt
    
por 07.07.2009 / 04:37
1

Existe um risco em se fazer isso: muitas vezes há maneiras de se fazer a mesma ação. Por exemplo, telnit 6 ou init 6 também faz uma reinicialização. Pode haver uma maneira de forçar o kernel a fazer o core dump e reinicializar também.

    
por 18.07.2009 / 00:01
1

A seguinte linha deve permitir ao usuário "jim" executar tudo, exceto / usr / bin / kill e / usr / bin / su.

jim          ALL= !/usr/bin/kill,!/usr/bin/su
    
por 07.07.2009 / 04:55
0

Isso não foi testado e YMMV, mas que tal configurar um cmd_list dos comandos que você não quer executar e então usar! cmd_list para o grupo / usuário especificado?

Eu não tenho acesso para testar isso e só procurei na página de manual on-line no Manual do Sudoers . alguns especialistas vão me corrigir aqui se eu estiver errado

    
por 07.07.2009 / 04:38

Tags