Às vezes, a execução de um processo do crontab
do root pode causar problemas com a propriedade inicial do arquivo e rwx
mode; esses podem não ser corretamente preservados.
Em qualquer caso:
1) para criar um novo usuário, simplifique:
$ sudo deluser my-user # if "my-user" is a regular user
$ adduser my-user
$ sudo gpasswd -a my-user sudo
2) para incluir uma nova entrada com uma tag NOPASSWD
em sudoers ou em um arquivo (por exemplo, /etc/sudoers.d/60_my-user_rules
), faça os dois pontos ficarem na tag, ou seja, NOPASSWD:
Eu não vi isso antes com espaço intercalado e a regra do ano se torna:
my-user my-host = NOPASSWD: /full/path/to/cmd [parameter1 [| parameter2 [| ...]]]
A adição de (ALL)
antes do NOPASSWD:
é opcional, já que a regra é padronizada como (ALL:ALL)
. No entanto, você pode querer não apenas executar seu cmd / script com privilégio de root, mas também executá-lo como um determinado usuário ( spec-user
) ou como um membro de um determinado grupo ( spec-group
) ou ambos. Nesse caso, a regra se torna:
my-user my-host = ([spec-user][:spec-group]) NOPASSWD: /full/path/to/cmd [parameter1 [| parameter2 [| ...]]]
Isso na verdade restringirá a eliminação de sudo sem senha a um usuário, um host e um comando. Você pode endurecer essa regra especificando o (s) parâmetro (s) opcional (is) para esse comando. Nesse caso, a regra será aplicada somente para aquele (s) parâmetro (s) exato (s).
Para scripts, você pode reforçar ainda mais essa regra, garantindo que a regra se aplique somente se o script não foi modificado de alguma forma . Esta é uma maneira de evitar o seqüestro de script. Isso é feito por meio do aliasing de cmd e da especificação de somas de SHA em /etc/sudoers.d/60_my-user_rules
.
HTH. Por favor, informe se você tiver problemas com essa resposta.