Eu não consigo entender a diferença entre os dois comandos
USER ALL=(ALL) NOPASSWD: ALL
E
USER ALL=(OTHERUSER) NOPASSWD: ALL
Alguém pode explicar a mudança ()? obrigado
fonte
Eu não consigo entender a diferença entre os dois comandos
USER ALL=(ALL) NOPASSWD: ALL
E
USER ALL=(OTHERUSER) NOPASSWD: ALL
Alguém pode explicar a mudança ()? obrigado
De man 5 sudoers
:
A estrutura básica de uma especificação do usuário é
who where = (as_whom) what
.
E
A palavra reservada
ALL
é um alias interno que sempre faz com que uma correspondência seja bem-sucedida.
No seu caso, a diferença está no (as_whom)
campo:
(ALL)
significa que é possível USER
executar comandos como qualquer usuário.(OTHERUSER)
significa que é possível USER
executar comandos como OTHERUSER
(por exemplo sudo -u OTHERUSER whoami
).
Note que isso não significa USER
que não pode executar comandos como YETANOTHERUSER
. Se USER
tentar executar algo YETANOTHERUSER
, a linha (OTHERUSER)
não corresponderá e o analisador continuará; alguma linha posterior pode corresponder.
USER
pode executar comandos sudo comoOTHERUSER
nome ou terá apenas os privilégios deOTHERUSER
?sudo -u chosen_user some_command
, como no exemplo que adicionei à minha resposta. Se o usuário tem permissão para executarsome_command
comochosen_user
, em seguida, o comando será executado com privilégios dechosen_user
.