So beschränken Sie normale Benutzer darauf, Sudo-Befehle nur als normale Benutzer und normale Gruppen auszuführen

So beschränken Sie normale Benutzer darauf, Sudo-Befehle nur als normale Benutzer und normale Gruppen auszuführen

Als normaler Benutzer foobarin der Gruppe usersmöchte ich sudoBefehle wie jeder andere Benutzer ohne Administratorrechte ausführen können (z. B. raboof:users), vorausgesetzt, dieser Benutzer foobarkennt das Kennwort des Run-As-Benutzers. Beispielsweise sollte Folgendes möglich sein:

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

Im Falle der zweiten und dritten oben genannten Variante wird die Ausführung jedoch sudoverweigert .echo Hello World!

sudoDas Standard-Plugin habe ich sudoerswie folgt konfiguriert:

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

sudoWie muss ich das Plug-In konfigurieren, sudoersdamit es wie gewünscht funktioniert?

Antwort1

Nach langem Herumprobieren mit den Ausdrücken der obigen Runas_AliasDefinitionen bin ich auf die folgende Konfiguration gestoßen, die tatsächlich für alle drei Kombinationen des Aufrufs sudoals nicht-administrativer Benutzer (zB raboof:users) funktioniert:

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)

Das Verschachteln und Negieren der zuvor festgelegten Runas_AliasDefinitionen wie folgt funktionierte aus unbekannten Gründen nicht:

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

verwandte Informationen