
我想執行一個腳本嵌入命令,需要來自我的非 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