Sudo Cmnd_Alias 可选参数

Sudo Cmnd_Alias 可选参数

我想允许命令在 sudo 下运行,带或不带参数。例如,这两个都应该有效:

 rm -f /etc/stuff
 rm /etc/stuff/item.txt

为了让它工作,我需要在 sudoers 中进行如下操作:

 Cmnd_Alias ITEM_RM = /bin/rm * /etc/*, /bin/rm /etc/*

然后我将其分配给一个组。这有效。但它让我在每个命令上都重复。我希望有一种方法,只有一个条目可以同时执行以下两项操作:

 Cmnd_Alias ITEM_RM = /bin/rm {something goes here that does both} /etc/*

我知道一种方法是将其包装在脚本中。我不想这样做。我有几十个这样的条目,我需要它们全部工作,并且事先不知道参数。

我也承认我要求的东西有点安全风险。提醒我这一点毫无意义。我要一些安全,不是紧的安全。我需要防止人们对服务器造成太大的损害,但我们有一个强大的防火墙,无法通过防火墙访问此服务器,因此严格的安全措施是在公司层面实施的。

欢迎提出想法!

答案1

我的经验是,仅用一条语句无法实现这一点。事实上,Cmnd_Alias 就是为此目的而设计的。

看起来您正试图限制用户只能删除 /etc/stuff 中的条目。那么他们的主目录中的条目呢?

无论如何,请记住,每个人默认情况下有权访问“rm”命令,因此您无需授予他们明确的访问权限。但是,他们只能对所有权和权限一致的对象采取行动。您可能希望从这个角度来解决问题。(组所有权和成员资格,以及 umask 设置)。

相关内容