Jos*_*aum 5 sudo services upstart init
允许非特权用户控制新贵工作的最佳方法是什么?
通过控制一个新贵的工作,我的意思是启动/停止/重新加载/重新启动它:
start myservice
Run Code Online (Sandbox Code Playgroud)
我可以想象一种方法是通过 sudo;需要做些什么才能使这成为可能?还有其他/更好的方法吗?
注意:这个问题虽然名称相似,但与作为非特权用户运行新贵工作有很大不同,因为它涉及实际服务的执行,而不是对工作的控制。
小智 8
除了 Tuminoid 所说的,您实际上可以限制sudo为具有具体参数的命令:
Cmnd_Alias START_MYSQL = /sbin/start mysql
user ALL=(ALL) NOPASSWD: START_MYSQL
Run Code Online (Sandbox Code Playgroud)
使用sudoers中的上述两行(您可以使用visudo命令编辑suodes ),named用户帐户user将无需密码即可运行:
$ sudo start mysql
Run Code Online (Sandbox Code Playgroud)
sudo但是,无论是否有密码,用户都无法使用其他任何内容,除非 sudoers 列表中存在其他允许它的条目。
您当然可以控制工作sudo。你不需要任何特殊的东西,只需sudo start myservice等。如果你有 sudo 权限,这是首选方式。
除此之外,您还需要一些以 root 身份运行的映射器来将用户特权命令转换为 root 命令。我曾经为了一个特殊目的使用 FIFO 来完成此操作,该 FIFO 可由用户写入,由具有 root 特权的新贵脚本读取,然后将命令映射到start, stop等等。对于多用户/生产系统来说,这当然不是一种安全的方法。
| 归档时间: |
|
| 查看次数: |
1570 次 |
| 最近记录: |