Итак, что я хочу, это:
- чтобы иметь возможность запускать
/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 .
Кто-нибудь может объяснить, что происходит?
РЕДАКТИРОВАТЬ: мой sudo -ll результат для пользователя app1adm1 :
sudo -ll
User app1adm1 may run the following commands on printsrv:
Sudoers entry:
RunAsUsers: root
Commands:
/sbin/app[12]/*
Sudoers entry:
RunAsUsers: printop2
RunAsGroups: printop2
Options: !authenticate
Commands:
/sbin/print/managequeue.sh -p app1 --view
Sudoers entry:
RunAsUsers: printop2
RunAsGroups: printop2
Options: authenticate
Commands:
/sbin/print/managequeue.sh -p app1 *
!/sbin/print/managequeue.sh -p app1 --view
