我想执行一个脚本嵌入命令,需要来自我的非 root 帐户的 root 用户,而无需 sudoing:
/usr/local/bin/dodo
#!/bin/bash
/bin/sync && /usr/sbin/pm-suspend-hybrid
我所做的就是让它成为 root 并设置 SUID 位:
chown root:root /usr/local/bin/dodo
chmod a+xrs /usr/local/bin/dodo
但当我尝试执行它时,结果是:
$ /usr/local/bin/dodo
This utility may only be run by the root user.
我还通过添加文件尝试了 sudoer 解决方案/etc/sudoers.d/dodo
:
%family ALL = (root) NOPASSWD: /usr/local/bin/dodo
如果我没记错的话,应该授权组族的用户以 root 身份执行 dodo,无需密码。但结果是一样的。
请问我想念什么?我在 Debian Jessie
编辑:在最后一种情况下,sudo dodo
无需密码即可工作
答案1
从 AlexP 的链接和那里的不同答案来看,这是有效的:
cat /usr/local/bin/dodo
#!/bin/bash
/bin/sync
exec sudo /usr/sbin/pm-suspend-hybrid
_
ls -l /usr/local/bin/dodo
-rwxr-xr-x 1 laurent family 60 déc. 18 17:47 /usr/local/bin/dodo
_
cat /etc/sudoers.d/dodo
%family ALL = (root) NOPASSWD: /usr/sbin/pm-suspend-hybrid
然后对于家庭组中的任何人:
dodo
无需密码或 sudo 即可执行同步和 pm-suspend-hybrid