我试图在我的文件(在 Ubuntu 12.04 LTS 服务器上)中添加一个NOPASSWD条目sudotest.sh(或任何需要 sudo 的脚本/二进制/etc/sudoers文件),但为了使其工作,我必须指定完整路径。以下条目工作正常:
%jenkins ALL=(ALL)NOPASSWD:/home/vts_share/test/sudotest.sh
Run Code Online (Sandbox Code Playgroud)
问题是脚本可能会移动到不同的目录。这似乎是*在路径中使用通配符(即/*/sudotest.sh)的好机会,这样我的脚本就可以在任何目录中,但手册指出,/在路径中使用通配符时,通配符将与字符不匹配。我已经确认它不起作用。
我知道我可以使用这个词ALL代替我的脚本,但这意味着对于任何看起来不安全的命令都没有密码提示。
我该如何解决这个问题?
除非可以在适当配置的 PATH 中找到它,否则放置 ALL 而不是您的脚本将不允许它运行。
要在不提供完整路径的情况下运行您的命令,它需要位于 PATH 变量指定的目录中。
对于 sudo,它取决于环境如何配置为使用哪个 PATH。
如果secure_path变量在 sudoers 中设置,则命令必须位于其中的目录中。
您可以将用户添加到exempt_group,然后他们可以使用自己的 PATH。
| 归档时间: |
|
| 查看次数: |
6143 次 |
| 最近记录: |