• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] init Skripte als nicht-root

Wizzkid

Newbie
Hallo.

Ich habe bei Strato einen VServer auf den neben mir noch andere Nutzer arbeiten. Einer der Nutzer entwickelt J2EE Anwendungen welche im Tomcat laufen. Der Tomcat wird über das Skript /etc/init.d/tomcat6 gestarted, gestoppt usw. Nun möchte ich dem besagten Nutzer die Möglichkeit einräumen, dass auch er dieses Skript ausführen kann. Sudo möchte ich ihm nicht erlauben.

Wie gehe ich am besten vor?
 
Ich würd' mal ganz naiv vorschlagen:

Eine Gruppe "tomcat" einrichten und das Skript dieser Gruppe zuordnen. Ausführungsrechte für die Gruppe vergeben und Gruppenmitgliedschaft in "tomcat" für den User einrichten.
 
OP
W

Wizzkid

Newbie
towo schrieb:
Warum nicht?
Genau dafür est es da.

Weil er dann so ziemlich alles machen kann, und das möchte ich halt nicht. Er soll lediglich den Tomcat starten und stoppen können.
Oder übersehe ich hier etwas?

altashveede schrieb:
Eine Gruppe "tomcat" einrichten und das Skript dieser Gruppe zuordnen. Ausführungsrechte für die Gruppe vergeben und Gruppenmitgliedschaft in "tomcat" für den User einrichten.

Das hatte ich mir auch schon überlegt, war mir aber nicht sicher ob das ein praktikables und empfehlenswertes Vorgehen ist.
Danke für den Tipp.
 

spoensche

Moderator
Teammitglied
@Wizzkid:

Du kannst sudo auch Feintunen, so dass die Gruppe Tomcat nur den Tomcatserver starten kann und alle anderen Befehlsaufrufe (per sudo) nicht erlaubt sind.

Siehe:
Code:
man 5 sudoers
 
OP
W

Wizzkid

Newbie
towo schrieb:
Man merkt, Du hast wirklich viel Ahnung!
Bist Du sicher, daß ein Server das richtige Spielzeug ist?

Dankeschön!

Genau aus dem Grund frage ich hier ja nach, was sich für solch ein Szenario das Standardvorgehen ist. Mein Arbeitsrechner ist eine Single-User-Maschine; aus diesem Grund habe ich mich nie mit sudoers beschäftigt. Es war schlicht und ergreifend für mich nicht notwendig.

spoensche schrieb:
Du kannst sudo auch Feintunen, so dass die Gruppe Tomcat nur den Tomcatserver starten kann und alle anderen Befehlsaufrufe (per sudo) nicht erlaubt sind.

Danke für den Hinweis. Ich werde mich mit sudoers einmal genauer beschäftigen.
 

HBtux

Member
Klarer Fall für sudo...

Das File /etc/sudoers mit dem Befehl visudo editieren.

Code:
# hier die erlaubten Befehle in einer Gruppe zusammenfassen.
# die Rechte können sogar bis auf die genaue definition der Parameter festgelegt werden.
# (z.B. nur tomcat_befehl mit Parameter -a oder -c erlaubt)
Cmnd_Alias      TOMCAT_BEFEHLE = /tomcat_starten, /tomcat_stoppen, \
                                /tomcat_befehl -a, tomcat_befehl -c

# hier die Gruppe der TOMCAT_ADMINS definieren
User_Alias 	  TOMCAT_ADMINS = user1, user2, user6

# hier wird letztlich die Freigabe erteilt.
# TOMCAT_ADMINS dürfen TOMCAT_BEFEHLE als user "root" ohne Eingabe eines Passwort starten.
TOMCAT_ADMINS     ALL=(root) NOPASSWD:   TOMCAT_BEFEHLE
Der Benutzer kann dann die freigegebenen Programme wie folgt ausführen.
Code:
user2@wwwroot:~> sudo /tomcat_starten

oder 

user2@wwwroot:~> sudo -u root /tomcat_starten
 
OP
W

Wizzkid

Newbie
Super! Genau so etwas habe ich mir vorgestellt.
Mir war gar nicht bewusst, wie mächtig und flexibel sudo ist.
Habe gerade auch gesehen, dass im Yast ein Dialog für sudo angeboten wird.

Danke für eure Hilfe.
 
Oben