我想以这种方式允许sudo:
myuser ALL=NOPASSWD:/usr/bin/pkill -fx "/usr/sbin/nethogs -v 3 -s" || /usr/sbin/nethogs -v 3 -s
所以我只得到一个运行的nethogs实例。
visudo接受它,但是如果没有密码,我将无法运行这些命令...
尝试失败:
sudo '/usr/bin/pkill -fx "/usr/sbin/nethogs -v 3 -s" || /usr/sbin/nethogs -v 3 -s'
sudo /usr/bin/pkill -fx "/usr/sbin/nethogs -v 3 -s" || sudo /usr/sbin/nethogs -v 3 -s
PS .:此版本的nethogs是从sf.net上的cvs编译而来的
您只能在文件中使用程序或脚本的名称或路径(以及可选的参数),sudoers
像shell这样的外壳结构||
将无法工作。
报价man sudoers
:
command name ::= file name |
file name args |
file name '""'
解决此问题的最简单方法是创建一个脚本,该脚本执行您的命令集,使其只能由root写入,并通过授予执行该脚本的权限sudo
。
的手册页sudo
实际上提供了一个在子shell中执行命令的示例,但是我还没有找到一种在sudoers
配置中允许这样做的方法(而且sudo-users邮件列表都没有)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句