Итак, я хочу:
- , чтобы иметь возможность запускать
/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
, это не 't:
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
.
Может кто-нибудь объяснить, что происходит?