sudo – Erlaube Benutzer, Befehl als Benutzer einer anderen Gruppe auszuführen und Frage nach ZIEL Benutzer Kennwort

Aus „Gründen“ ist es gewünscht, das alle Mitglieder einer bestimmten Gruppe einen bestimmten Befehl ausführen können sollen. Und zwar soll der Befehl nicht als root oder mit den Rechten des aufrufenden Benutzers ausgeführt werden. Als „welcher Benutzer“ der Befehl ausgeführt werden soll, hänge davon ab, ob der „Ziel Benutzer“ zu einer bestimmten Gruppe gehöre. Und es soll nach dem Kennwort des Ziel Users gefragt werden.

Noch jemand da…?🙂

  • Ich habe also den Benutzer „local„. Dieser gehöre (unter anderem…) zu der Gruppe „ro„.
  • Und ich habe den Benutzer „local-rw„. Dieser gehöre (unter anderem…) zu der Gruppe „rw„.
  • Und zu guter letzt gibt es den Befehl „/usr/local/bin/testid„. Der Befehl darf nur von Mitgliedern der „rw“ Gruppe aufgerufen werden.

Das geht so mit sudo und Dateisystem-Berechtigungen:

# chmod g=x,uo= /usr/local/bin/testid
# chown nobody /usr/local/bin/testid
# chgrp rw /usr/local/bin/testid

$ ls -la /usr/local/bin/testid
------x--- 1 nobody rw 35520 Jan 14 2015 /usr/local/bin/testid

Hiermit habe ich schonmal erreicht, das nur Mitglieder der „rw“ Gruppe den Befehl ausführen dürfen. Aber die Mitglieder der „rw“ Gruppe dürfen und können sich nicht direkt (mit SSH oder wie auch immer) auf dem System einloggen. Damit der Befehl trotzdem ausgeführt werden kann, kommt „sudo“ zum Einsatz. Hierfür habe ich die Konfigurationsdatei /etc/sudoers.d/local mit folgendem Inhalt angelegt:

Cmnd_Alias DEPLOY_CMD = /usr/local/bin/deploy.sh, /usr/local/bin/testid, /usr/local/bin/testls
Runas_Alias DEPLOY_CMD_RUNAS = %write-local, %rw
User_Alias DEPLOY_CMD_USER = %read-local, %ro
Defaults!DEPLOY_CMD targetpw

DEPLOY_CMD_USER ALL=(DEPLOY_CMD_RUNAS) DEPLOY_CMD

Und nun kann der Befehl ausgeführt werden:

$ id
uid=1005(rotest) gid=1007(rotest) groups=1007(rotest),1005(ro)

$ sudo -u rwtest /usr/local/bin/testid
uid=1004(rwtest) gid=1006(rwtest) groups=1006(rwtest),1004(rw)

YEAH🙂 #ftw

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s