
Como usuário normal foobar
do grupo, users
desejo poder executar sudo
comandos como qualquer outro usuário não administrador (por exemplo raboof:users
), desde que o usuário foobar
conheça a senha do usuário executado. Por exemplo, o seguinte deveria ser possível:
$ sudo -u raboof echo Hello World!
[sudo] Password for raboof:
$ sudo -g users echo Hello World!
$ sudo -u raboof -g users Hello World!
Mas sudo
nega concorrer echo Hello World!
no caso da segunda e terceira variante acima.
Configurei o sudo
plug-in padrão sudoers
da seguinte forma:
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
Como devo configurar o sudo
plug-in sudoers
para que funcione da maneira que desejo?
Responder1
Depois de muito me atrapalhar com as expressões das Runas_Alias
definições acima, criei a seguinte configuração que realmente funciona para todas as três combinações de invocação sudo
como usuário não administrador (por exemplo 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)
Aninhar e negar as Runas_Alias
definições definidas anteriormente não funcionou por algum motivo desconhecido:
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