具有限制权限的Ansible sudo

时间:2020-02-23 17:51:38

标签: ansible sudo

我们有一个用例,其中ssh用户test2被授予运行另一个用户test3拥有的特定脚本的权限。以下是/etc/sudoers文件中提供的权限。

test2 ALL=(test3) NOPASSWD: /home/test3/start.sh

这在我们运行ssh test2@target_host sudo -u test3 /home/test3/start.sh

时很好用

我们想通过ansible成为method:sudo和成为begin_user来执行ssh任务,但该命令永远无法工作。我们发现,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用户。

1 个答案:

答案 0 :(得分:0)

由于您只需要<Location /sonarqube> RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteCond %{HTTPS} off RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE] ProxyPreserveHost On ProxyPass http://192.168.10.15:9000/sonarqube ProxyPassReverse http://192.168.10.15:9000/sonarqube </Location> 用户来执行test2所拥有的一个文件,那么只授予test3来读取和执行该文件(及其所在目录)的权限怎么样?

test2

然后,您根本不需要setfacl -m u:test2:rx /home/test3 setfacl -m u:test2:rx /home/test3/start.sh 东西。