Bloqueia um comando do usuário sudo

8

Não preciso de um administrador para alterar minha senha de root. Eu não quero que nenhum usuário sudo execute este comando:

sudo passwd $root

Eu tentei no arquivo sudoers usando o seguinte comando:

%sudo ALL=(ALL) ALL, !/usr/bin/passwd $root

Como posso bloquear isso?

    
por Magesh Arumugam 21.07.2014 / 17:36

2 respostas

12

De acordo com o manual do sudoers :

   It is generally not effective to "subtract" commands from ALL using the
   ’!’ operator.  A user can trivially circumvent this by copying the
   desired command to a different name and then executing that.  For
   example:

       bill        ALL = ALL, !SU, !SHELLS

   Doesn’t really prevent bill from running the commands listed in SU or
   SHELLS since he can simply copy those commands to a different name, or
   use a shell escape from an editor or other program.  Therefore, these
   kind of restrictions should be considered advisory at best (and
   reinforced by policy).

É por isso que sua política de sudoers não funciona.

Se você quiser impedir que o usuário obtenha permissão de root e altere sua senha, tente este procedimento:

  • Supondo que seus sudoers contenham esta diretiva:

     root    ALL=(ALL:ALL) ALL
     %sudo   ALL=(ALL:ALL) ALL
    
  • Supondo que seu nome de usuário seja foo , seus grupos são foo e sudo . A saída do comando groups é:

    foo sudo
    
  • Remova o usuário foo de sudo group: gpasswd -d foo sudo depois disso, user foo não pode executar nenhum comando com sudo.

  • Edite o arquivo sudoers. Use este comando:

    sudo visudo -f /etc/sudoers.d/foo
    
  • Defina user foo permission, por exemplo:

    foo ALL=/usr/bin, !/usr/bin/passwd, !/usr/bin/su
    

    Isso significa que o usuário foo pode executar qualquer comando no comando /usr/bin/ exceto passwd e su . Nota: Se o usuário foo desejar alterar sua senha, poderá executar o comando passwd sem sudo .

  • Outro exemplo de usuário foo permission:

    foo ALL =/usr/bin, /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
    

    Isso significa que o usuário foo pode executar qualquer comando no diretório /usr/bin/ e pode alterar a senha de qualquer pessoa, exceto root em TODAS as máquinas.

Você pode definir grupos de comandos definindo Cmnd_Aliases e criar "níveis de permissões". Você pode encontrar exemplos úteis na seção EXEMPLO do manual do sudoers , e aqui está uma link útil sobre como usar sudoers.

    
por Lety 21.07.2014 / 23:04
0

adicione alias de comando via visudo :

Cmnd_Alias PASSWD=/usr/bin/passwd
Cmnd_Alias SU=/bin/su

adicione restrições por meio de visudo :

%nopasswdgroup ALL = ALL, !PASSWD, !SU

adicione o usuário ao grupo chamado nopasswdgroup:

usermod -aG nopasswdgroup nopasswduser
    
por shcherbak 14.02.2017 / 15:02