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
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
Respostas:
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 USERexecutar comandos como qualquer usuário.(OTHERUSER)significa que é possível USERexecutar comandos como OTHERUSER(por exemplo sudo -u OTHERUSER whoami).
Note que isso não significa USERque não pode executar comandos como YETANOTHERUSER. Se USERtentar executar algo YETANOTHERUSER, a linha (OTHERUSER)não corresponderá e o analisador continuará; alguma linha posterior pode corresponder.
sudo -u chosen_user some_command, como no exemplo que adicionei à minha resposta. Se o usuário tem permissão para executar some_commandcomo chosen_user, em seguida, o comando será executado com privilégios de chosen_user.
USERpode executar comandos sudo comoOTHERUSERnome ou terá apenas os privilégios deOTHERUSER?