Answers:
用户必须具有
整个目录路径的执行权限(/root
仅此处)
执行文件权限
文件的读取权限
最好/root
保持不变并为此创建(或使用)其他目录(例如/usr/local/bin
)。user1
通过将脚本root
设为文件的所有者或保留为所有者和组,将简单访问权限(chmod
)设置为,770
并添加user1
ACL(setfacl
),可以使其成为唯一有权执行脚本的用户。
如果您的脚本位于根目录中,则
$ LC_ALL=C ls -ld /root
drwx------ 17 root root 4096 Mar 5 20:14 /root
user1
只能是root。
您的/etc/sudoers
输入看起来像
Cmnd_Alias SCRIPT=/root/script.sh
# user who is allowed executing /root/script.sh
%user ALL = (ALL) SCRIPT
通常,您可以使用 visudo
然后,您也不需要把-u root
你的sudo
命令。
该%
装置的用户组。当您忽略它时,则仅允许用户执行命令。如果您希望一组用户执行它,请照原样离开。
sudo
您编写的命令有什么问题?