![仅针对某些参数授予对命令的访问权限(针对路径进行 chown)](https://linux22.com/image/1588619/%E4%BB%85%E9%92%88%E5%AF%B9%E6%9F%90%E4%BA%9B%E5%8F%82%E6%95%B0%E6%8E%88%E4%BA%88%E5%AF%B9%E5%91%BD%E4%BB%A4%E7%9A%84%E8%AE%BF%E9%97%AE%E6%9D%83%E9%99%90%EF%BC%88%E9%92%88%E5%AF%B9%E8%B7%AF%E5%BE%84%E8%BF%9B%E8%A1%8C%20chown%EF%BC%89.png)
我有一个脚本需要在文件夹中递归更改所有者
这是我的特定的 sudoers 文件:/etc/sudoers.d/jenkins
jenkins ALL=(ALL) NOPASSWD: /bin/chmod, /bin/chown
这是詹金斯需要执行的命令:
chown -R apache:apache /var/www/vhosts/${HOST}/${PROJECT}
出于安全原因,我需要限制 sudo 权限仅适用于使用参数 /var/www/vhosts/*** 的 chown
sudoers 文件中有一些正则表达式可以执行此操作吗?
答案1
是的,您可以使用通配符:
jenkins ALL=(ALL) NOPASSWD: /bin/chown -R apache:apache /var/www/vhosts/*
但是从安全角度来看,编写自己的脚本可能更安全,这样您就可以验证参数并确保只有您想要影响的路径才会受到影响:
jenkins ALL=(ALL) NOPASSWD: /usr/local/bin/my-custom-chown-script