Как ограничить обычных пользователей, чтобы они могли запускать команды sudo только как обычные пользователи и обычные группы

Как ограничить обычных пользователей, чтобы они могли запускать команды sudo только как обычные пользователи и обычные группы

Как обычный пользователь foobarв группе usersя хочу иметь возможность запускать sudoкоманды как любой другой неадминистративный пользователь (например, raboof:users), при условии, что этот пользователь foobarзнает пароль пользователя run-as. Например, должно быть возможно следующее:

$ sudo -u raboof echo Hello World!
[sudo] Password for raboof:
$ sudo -g users echo Hello World!
$ sudo -u raboof -g users Hello World!

Но sudoотказывается баллотироваться echo Hello World!в случае второго и третьего варианта, указанных выше.

Я настроил sudoстандартный плагин sudoersследующим образом:

User_Alias USER_ADMIN = #0, %#0, %wheel
Runas_Alias RUNAS_ADMIN = #0, %#0, %wheel

User_Alias USER_USER = ALL, !USER_ADMIN
Runas_Alias RUNAS_USER = ALL, !RUNAS_ADMIN

Defaults:USER_USER targetpw

USER_ADMIN ALL = (ALL:ALL) ALL

USER_USER ALL = (RUNAS_USER:RUNAS_USER) ALL

Как мне настроить sudoплагин, sudoersчтобы он работал так, как мне нужно?

решение1

После долгих раздумий с выражениями приведенных выше Runas_Aliasопределений я пришел к следующей конфигурации, которая на самом деле работает для всех трех комбинаций вызова от sudoимени пользователя, не являющегося администратором (например raboof:users, ):

User_Alias USER_USER = ALL, !#0, !%#0, !%wheel
Runas_Alias RUNAS_USER_USER = ALL, !#0, !%#0, !%wheel
Runas_Alias RUNAS_USER_GROUP = ALL, !#0, !wheel

Defaults:USER_USER targetpw

USER_USER ALL = (RUNAS_USER_USER:RUNAS_USER_GROUP) ALL

foobar $ sudo -u raboof id
uid=1000(raboof) gid=100(users) groups=100(users)
foobar $ sudo -g users id
uid=1000(foobar) gid=100(users) groups=100(users)
foobar $ sudo -u raboof -g users id
uid=1000(raboof) gid=100(users) groups=100(users)

Вложение и отрицание ранее определенных Runas_Aliasопределений следующим образом не сработало по какой-то неизвестной причине:

Runas_Alias RUNAS_ADMIN_USER = #0, %#0, %wheel
Runas_Alias RUNAS_ADMIN_GROUP = #0, wheel
Runas_Alias RUNAS_USER_USER = ALL, !RUNAS_ADMIN_USER
Runas_Alias RUNAS_USER_GROUP = ALL, !RUNAS_ADMIN_GROUP

Связанный контент