Cómo restringir a los usuarios normales para que ejecuten comandos sudo solo como usuarios normales y grupos normales

Cómo restringir a los usuarios normales para que ejecuten comandos sudo solo como usuarios normales y grupos normales

Como usuario normal foobaren el grupo, usersquiero poder ejecutar sudocomandos como cualquier otro usuario no administrador (por ejemplo raboof:users), siempre que el usuario foobarconozca la contraseña del usuario de ejecución. Por ejemplo, debería ser posible lo siguiente:

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

Pero sudose niega a postularse echo Hello World!en el caso de la segunda y tercera variante mencionadas.

Configuré el sudocomplemento estándar sudoersde la siguiente manera:

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

¿Cómo debo configurar el sudocomplemento sudoerspara que funcione como quiero?

Respuesta1

Después de mucho buscar las expresiones de las Runas_Aliasdefiniciones anteriores, se me ocurrió la siguiente configuración que realmente funciona para las tres combinaciones de invocación sudocomo usuario no administrador (por ejemplo 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)

Anidar y negar las Runas_Aliasdefiniciones previamente definidas de la siguiente manera no funcionó por alguna razón desconocida:

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

información relacionada