Qual é a diferença entre 'root ALL = (ALL: ALL) ALL' e 'root ALL = (ALL) ALL'?

3

Esta linha é do meu Ubuntu 14.04

root    ALL=(ALL:ALL) ALL

Qual é o significado do terceiro ALL ?

Qual é a diferença entre a linha acima e root ALL=(ALL) ALL ?

    
por Theodore Si 06.11.2014 / 05:27

1 resposta

3

Embora a sudoers manpage possa ser um pouco instigante, existem exemplos que ajudam a esclarecer as coisas:

 dgb     boulder = (operator) /bin/ls, (root) /bin/kill, /usr/bin/lprm
     

O usuário dgb agora pode executar /bin/ls como operator , mas /bin/kill   e /usr/bin/lprm como root .

     

Podemos estender isso para permitir que dgb execute /bin/ls com o usuário ou   grupo definido como operator :

 dgb     boulder = (operator : operator) /bin/ls, (root) /bin/kill,\
         /usr/bin/lprm

Podemos inferir que, dada uma linha sudoers do formulário:

A B = (C:D) E

D refere-se aos grupos que podem ser usados.

Portanto, o terceiro ALL especifica que o usuário pode executar o comando em qualquer grupo.

Se o (ALL) for especificado em vez de (ALL:ALL) , então sudo não poderá ser usado com -g por esse usuário para esses comandos:

Runas_Spec
  A Runas_Spec determines the user and/or the group that a command may 
  be run as.             ...  The second defines a list of groups that
  can be specified via 'sudo''s '-g' option.  If both Runas_Lists are
  specified, the command may be run with any combination of users and
  groups listed in their respective Runas_Lists. If only the first is
  specified, the command may be run as any user in the list but no '-g'
  option may be specified.

(Os exemplos acima vêm da mesma seção.)

    
por muru 06.11.2014 / 05:55

Tags