删除 sudoers 中指定的完整路径

删除 sudoers 中指定的完整路径

我正在尝试在 /etc/sudoers 文件 (redhat) 中为“sudotest.sh”(或任何需要 sudo 的脚本/二进制文件)添加 NOPASSWD 条目,但为了使其正常工作,我必须指定完整路径。以下条目工作正常:

%jenkins ALL=(ALL)NOPASSWD:/home/vts_share/test/sudotest.sh

问题是脚本可能会移动到不同的目录。我尝试提供 /home/*/sudotest.sh,但当我尝试执行 sudo ./sudotest.sh 时,它没有起作用,它告诉我你没有 root 权限

注意:我也没有 /bin/sh 目录的权限。

答案1

这是不可能的。您可以做的是将 sudotest.sh 符号链接到 sudoers 中指定的静态位置。

例子:

真实文件:/home/vts_share/test/sudotest.sh
符号链接:/usr/bin/sudotest.sh

SUDOERS 条目:

%詹金斯 ALL=(ALL)NOPASSWD:/usr/bin/sudotest.sh

如果文件移动,只需将其重新链接到 /usr/bin/sudotest.sh - 无需再次更改 SUDOERS。您也可以编写脚本...updatedb,找到 sudotest.sh,ln -s,您可以将其放入 cron... 丑陋的黑客,但它会起作用

答案2

这不是一个好主意,因为用户可以创建一个同名的 sh 文件并插入自己的命令。
他甚至不应该被允许更改初始文件内容,它应该被放在他无法写入的文件夹中。

相关内容