Como limitar os usuários que um usuário específico pode executar comandos no linux?

2

Eu tenho duas contas de usuário, foo e barra

Eu quero permitir que o usuário foo execute comandos como root e qualquer outro usuário, por exemplo:

sudo su root -c'./run-my-script'

sudo su bar -c'./another-script'

sudo su another -c'./yet-another-script

Eu também quero permitir que o usuário barra execute comandos como outro usuário, mas apenas um subconjunto e não o root, por exemplo:

sudo su bar -c'./run-my-script'

mas não

sudo su root -c'./run-my-script'

Isso é possível?

    
por sleepyjames 17.01.2011 / 13:25

1 resposta

8

Sim, certamente é possível.

Primeiramente você precisa consertar seu uso de sudo, para executar um comando como um usuário diferente de root (o padrão) com sudo a sintaxe é: sudo -u username command

Você pode bloquear os usuários cuja identidade um usuário pode assumir por meio do arquivo /etc/sudoers config, por exemplo, um usuário totalmente privilegiado se parece com:

jim ALL=(ALL) ALL

Considerando um usuário com restrições:

jim ALL=(admin,bill) ALL

O que significa que se eu tentar executar um comando como um usuário que não esteja na lista, será negado:

jim@mybox:~$ sudo -u nobody whoami
Sorry, user jim is not allowed to execute '/usr/bin/whoami' as nobody on mybox.
    
por 17.01.2011 / 13:39