允许自定义 bash 命令的权限,但不允许底层命令的权限

允许自定义 bash 命令的权限,但不允许底层命令的权限

我们的一台服务器上有一个自动脚本,由观察用户运行。它需要告诉另一个由主用户运行的脚本更新日志文件。

代码如下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 *

相关内容