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
superadmpoderá executar com privilégios elevados.ALLsignifica 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áriosuperadmserá capaz de executar os seguintes comandos como.ALLsignifica 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.