Como posso configurar o visudo para executar um script com privilégios de root para um usuário não root?

0

Eu preciso do que um implantador (membro da implantação de grupo) pode executar alguns scripts com priviegies de raiz. Mas eu não quero que os implantadores possam executar qualquer coisa. Eu tento isso.

Com um usuário root eu faço:

~$ echo "touch /opt/expe/\$file_name.txt" > create_file.sh
~$ echo "chown \$USER /opt/expe/\$file_name.txt" >> create_file.sh
~$ cat create_file.sh
touch /opt/expe/$file_name.txt
chown $USER /opt/expe/$file_name.txt

~$ sudo mv create_file.sh /opt/expe/create_file.sh
~$ sudo chgrp deploy /opt/expe/create_file.sh
~$ sudo chmod g+x /opt/expe/create_file.sh
~$ sudo visudo 
%deploy ALL=(root) NOPASSWD:/opt/expe/create_file.sh

Com um usuário não raiz de implantação, eu faço:

~$ groups
deploy
~$ /opt/expe/create_file.sh
touch: cannot touch '/opt/expe/my_text.txt': Permission denied
chown: cannot access '/opt/expe/my_text.txt': No such file or directory

Por que o comando touch não foi executado como root?

Como posso fazer um script que excede comandos como root para um usuário não root?

Refs:

por Emilio Platzer 30.07.2017 / 18:17

0 respostas