Sudoers:无法运行两个命令列表,其中第二个命令列表具有glob *并拒绝第一个命令列表

Adriano_epifas

我想要的是:

  • 以便能够以/sbin/print/managequeue.sh -p app1 --view其他用户身份运行而无需输入密码。
  • 才能以其他用户身份运行/sbin/print/managequeue.sh -p app1 --cancel(或--delete,或--pause,等等),但要求输入密码。

最好,我不想Cmnd_Alias使用所有可能的参数创建一个因此,我尝试了以下三个别名和用户规范:

Host_Alias      PRINTSRVS = printsrv, printsrvbkp
Cmnd_Alias      APP1PMV = /sbin/print/managequeue.sh -p app1 --view
Cmnd_Alias      APP1PMD = /sbin/print/managequeue.sh -p app1 *, !APP1PMV

%app1adms, %helpdesk PRINTSRVS = (printop2:printop2) NOPASSWD: APP1PMV, \
                                 (printop2:printop2) PASSWD: APP1PMD

当我运行时,sudo -u printop2 /sbin/print/managequeue.sh -p app1 --cancel它可以正常工作:

[sudo] password for app1adm1:
Managing queue...

但是,当我运行sudo -u printop2 /sbin/print/managequeue.sh -p app1 --view时,它不会:

Sorry, user app1adm1 is not allowed to execute '/sbin/print/managequeue.sh -p app1 --view' as printop2 on printsrv.

显然,我的第二条命令(printop2:printop2) PASSWD: APP1PMD取代了我的第一条命令,(printop2:printop2) NOPASSWD: APP1PMV并且--view完全拒绝了该参数。

您能解释一下这个问题吗?

杰夫·谢勒(Jeff Schaller)

基于sudoers(v1.8.25)的描述

当多个条目与一个用户匹配时,将按顺序应用它们。如果存在多个匹配项,则使用最后一个匹配项(不一定是最具体的匹配项)。

...您将需要交换顺序,以便--view最后列出命令版本。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何运行两个命令,但在第二个命令上有延迟而又不停止第一个命令?

如何使用两个列表绘制图形,其中第一个列表是普通列表,第二个列表包含列表

在第一个命令完成或出错后运行第二个命令

如何将列表拆分为两个列表,其中第一个具有正条目,第二个具有非正条目-SML

按日期分组,其中第二个列表中的日期在从第一个日期起的两个日期之间

通过PHP运行两个Linux命令,不要等到第一个结束再执行第二个

两个数字并从第一个到第二个数字打印列表

如何在保持第一个命令运行的同时防止出现第二个命令?

在第一个命令上使用&&和sudo时,第二个命令是否也以sudo运行?

从两个列表中选一个,将第二个列表值放在第一个下面

启动2个命令,等待第二个命令的结尾,然后终止第一个命令

从第二个列表中减去第一个列表中的元素

如何遍历两个列表并回收第二个列表,直到第一个列表结束

如何基于第一个下拉列表选择获取动态生成的两个下拉列表的第二个下拉列表的ID?

循环浏览两个列表,从第一个列表中获取值,然后将它们添加到第二个列表中

在两个列表上执行查找并根据条件将第二个列表中的元素添加到第一个列表

在两个列表中,如何根据第一个列表值获取第二个列表的值?

如何从两个列表中创建一个熊猫数据框,其中第一个列表的每个值都将第二个列表的每个值作为记录

jQuery的第二个下拉列表取决于第一个下拉列表没有变化

Prolog - 检查第二个列表是否包含第一个列表中的所有偶数

从两个列表创建一个 Pandas Dataframe:第 1 列是第一个列表,第 2 列是第二个列表,它是一个嵌套列表

如何将两个列表的值存储在单个字典中,其中第一个列表的值是键,而第二个列表的值是属性?

查找第一个值并返回列表中的第二个值

打印列表中的第一个,第二个出现的字符

Jupyter:为什么第二个命令会使第一个命令停止工作?

Prolog-第一个列表是第二个列表的子列表,同时保持顺序?

如何在同一个列表中有两个 for 循环,但第二个从第一个循环的下一个值开始?

如何利用两个列表之间的差异将第一个转换为第二个?Python

Haskell:如果两个元组的第一个元素相等,则在元组列表中添加第二个元素?