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.
~$ 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
~$ 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?