LDe*_*her 5 root sudo alias privileges
我需要一个允许运行需要 root 权限的命令列表的 linux 用户(让我们称他为“bob”)。因此,让他以 root 身份运行/sbin/firstcommand和/sbin/secondcommand(这是臭名昭著的 bob-daemon¹ 的一部分),如sudo firstcommand. 无需输入密码。
这是我/etc/sudoers到目前为止所做的:
Cmnd_Alias BOBCOMMANDS = /sbin/firstcommand, /sbin/secondcommand
bob ALL=(root) NOPASSWD:BOBCOMMANDS
Run Code Online (Sandbox Code Playgroud)
这导致bob$ sudo firstcommand并bob$ sudo secondcommand成功地以 root 身份运行,但没有办法运行 ie bob$ sudo mount ... ...,即使提供了密码,这对我来说感觉很完美。
现在,我希望前面提到的 bob-daemon¹ 以用户身份bob而不是身份运行root,因为它只需要BOBCOMMANDS. 事实上,无论何时bob$ firstcommand发出,我都想bob$ sudo firstcommand被执行。
在我看来,别名可以解决这个问题: bob$ alias firstcommand="sudo firstcommand"; alias secondcommand="sudo secondcommand"确实有效,但我无法在没有 bob 主目录的情况下使别名持久化。
我要提到的最后一件事是,这应该很容易部署到多台机器上,所以除了必须创建 bob 和更改sudoers.
任何解决方案?
¹由我简化
如果这是一个守护进程,标准的做法是将这样的内容放入 init 脚本文件中:
USER=bob
...
su -c '/command/to/start/actual/daemon' "$USER"
Run Code Online (Sandbox Code Playgroud)
在应该运行的脚本文件中bob,只需将其放在sudo相关命令的前面即可。
另外,请确保您阅读了有关在非交互式 Bash shell(例如由脚本或守护进程启动的 shell)中启用别名扩展的内容。
| 归档时间: |
|
| 查看次数: |
2078 次 |
| 最近记录: |