Observação: estou respondendo 1. , já que Ignacio já respondi 2. .
No seguinte sudo
entry:
superadm ALL=(ALL) ALL
existem quatro campos:
- O primeiro especifica um usuário que receberá privilégios para alguns comandos.
- O segundo é raramente usado. É uma lista de nomes de host nos quais essa entrada do sudo será efetiva. Em configurações padrão, apenas um host é relevante (localhost), portanto, esse campo geralmente é deixado como
ALL
. - O campo fourth é a lista de comandos que o
superadm
poderá executar com privilégios elevados.ALL
significa todos os comandos. Caso contrário, use uma lista de comandos separados por vírgulas. - O terceiro campo (aquele escrito
(…)
que é opcional) especifica quais usuários (e grupos) o usuáriosuperadm
será capaz de executar os seguintes comandos como.ALL
significa que eles podem escolher qualquer coisa (sem restrições). Este campo é omitido, significa o mesmo que(root)
.
Exemplo:
alan ALL = (root, bin : operator, system) /bin/ls, /bin/kill
Aqui, alan
tem permissão para executar os dois comandos /bin/ls
e /bin/kill
como root
(ou bin
), possivelmente com privilégios adicionais operator
ou system
groups.
Portanto, alan
pode optar por executar ls
como o usuário bin
e com privilégios de grupo operator
como este:
sudo -u bin -g operator /bin/ls /whatever/directory
Se -u
for omitido, será o mesmo que -u root
. Se -g
for omitido, nenhum privilégio de grupo adicional será concedido.