我们的一台服务器上有一个自动脚本,由观察用户运行。它需要告诉另一个由主用户运行的脚本更新日志文件。
代码如下sudo kill -UPDATE_LOG pid
显然,观察用户必须具有运行此命令的权限。但是,出于显而易见的原因,我不想授予此自动脚本终止进程的权限。
我想做类似的事情alias update_log='kill -UPDATE_LOG; grant update_log on observing_user
答案1
可能使用
sudo pkill -UPDATE_LOG <process-name>
而不是杀死就足以满足您的需要吗?
解决此问题的另一种方法是将您想要使用 sudo 提供的命令嵌入自定义脚本或 exec 中以执行此操作。
答案2
好吧,改变关键词后我找到了答案。
也可以看看: 如何阻止 sudo 用户运行特定命令?
步骤1:
sudo visudo
语法如下:
user host=command
这将授予 sudo 访问给定命令的权限。您还可以执行以下组操作:
%group host=command
您可以在任意 3 个“列”中使用 ALL 将其应用于任何主机、任何命令或任何用户。
我的解决方案是
observing_user ALL=kill -USR1 *