Adicionando o seguinte a sudoers
:
myUsername ALL=(ALL) NOPASSWD: /path/to/down.sh
Você permitiu que myUsername
executasse o script /path/to/down.sh
com privilégios elevados. Isso significa que você pode emitir o seguinte comando:
sudo /path/to/down.sh
Seria suficiente executar todo o seu script com privilégios elevados e não pediria uma senha. Você não precisa colocar sudo
adicional para chown
ou chmod
, pois esses comandos herdarão permissões do script (mas, neste caso, sudo chown
seria executado sem problemas, pois root
tem permissões para executar todos comandos sem prompt de senha).
Esse é um caminho possível.
O outro jeito ...
Você não permitiu que myUsername
executasse chown
ou chmod
em sudoers
. Se você quisesse executar o script como um usuário comum e permitir apenas que determinados comandos fossem executados como root
, você deve especificar todos eles em sudoers
, por exemplo:
myUsername ALL=(ALL) NOPASSWD: /usr/sbin/chown
seu caminho para binários pode ser diferente
ou especifique alias de comando:
Cmnd_Alias FILEPERM_CMDS = /usr/sbin/chown, /usr/sbin/chmod
myUsername ALL=(ALL) NOPASSWD: FILEPERM_CMDS
Dessa forma, você pode usar seu script como está.
Por fim, você especificou suas permissões em # User alias specification
. Este é apenas um bom conselho prático, mas não é sobre isso que trata esta seção. Você deve preferir que ele seja adicionado a # User privilege specification
.
Dê uma olhada nos exemplos de sudoers para alguns cenários comuns.