我们有一个用例,其中ssh用户test2被授予运行另一个用户test3拥有的特定脚本的权限。以下是/ etc / sudoer文件中提供的权限。
test2 ALL =(test3)NOPASSWD:/home/test3/start.sh
[这在我们运行ssh test2 @ target_host sudo -u test3 /home/test3/start.sh时很好用
我们想通过ansible的成为方法执行ssh任务:sudo和begin_user,但是这永远行不通。我们发现,在实际执行过程中,ansible会按以下方式修改指令,并且与sudoer文件上的权限永远不匹配。
sudo -H -S -n -u test3 / bin / sh -c'“'”'“'”'“'”'“'”'echo BECOME-SUCCESS-knavgwllrftljavwujkveyjcctlgkbda; / usr / bin / python /var/tmp/ansible-tmp-1582478029.04-74694013835195/AnsiballZ_command.py'“”“”“”“”“'”'“'&& sleep 0'”'“”“]
似乎我们唯一的选择是如下更新权限,但是这种方式对test3用户提供了完全的shell权限,这将永远无法满足我们的安全要求]]
test2 ALL =(test3)NOPASSWD:/ bin / sh
以前有人遇到过类似情况吗?控制执行。请注意,test2和test3不是sudo用户。
我们有一个用例,其中ssh用户test2被授予运行另一个用户test3拥有的特定脚本的权限。以下是/ etc / sudoer文件中提供的权限。 test2 ALL = ...
由于您只需要test2
用户来执行test3
拥有的一个文件,如何只授予test2
读取和执行该文件(及其所在目录)的权限: