我想要的是:
/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
完全拒绝了该参数。
您能解释一下这个问题吗?
当多个条目与一个用户匹配时,将按顺序应用它们。如果存在多个匹配项,则使用最后一个匹配项(不一定是最具体的匹配项)。
...您将需要交换顺序,以便--view
最后列出命令的版本。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句