sudoers: не может запустить 2 списка команд, где второй имеет глобус * и запрещает первый - PullRequest
0 голосов
/ 14 сентября 2018

Итак, я хочу:

  • , чтобы иметь возможность запускать /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.

Может кто-нибудь объяснить, что происходит?

...