So führen Sie den Ubuntu-Dienst als bestimmten Benutzer aus

7

Wie kann der Ubuntu-Dienst als bestimmter Benutzer ausgeführt werden?

Ich habe ein init.d-Skript erstellt und es beim Booten starten lassen, aber früher stellte ich fest, dass der Dienst nach dem Neustart als root ausgeführt wird.

Ich google und google, Leute schlagen vor, als separater Benutzer zu laufen, also was sind die Schritte?

王子 1986
quelle
1
Sie sollten angeben, für welches Ubuntu Sie dies möchten. Nicht alle Ubuntu haben Upstart v1.4, daher gehe ich von 12.04, 12.10 oder 13.04 aus.
Rinzwind

Antworten:

5

Upstart v1.4 + Zustände ...

setuid $user

Änderungen am Benutzer vor dem Ausführen des Auftragsprozesses.

  • Ändern Sie $ user in einen tatsächlichen Benutzernamen
  • Beachten Sie, dass alle Prozesse (vor dem Start, nach dem Stopp usw.) wie vom Benutzer angegeben ausgeführt werden.
  • Beachten Sie, dass Upstart einen Fehler protokolliert, wenn Sie im Debug-Modus einen ungültigen Benutzernamen in der Zeilengruppe setuid angeben.
Rinzwind
quelle
Die Dokumentation dafür ist riesig und schrecklich komplex. Was sind die einfachen Schritte, um dies zu konfigurieren? Irgendwo eine Datei bearbeiten? Wie bearbeite ich eine solche Datei? Vielen Dank.
InteXX
1
1. Es ist nicht einfach und unterscheidet sich zwischen verschiedenen Ubuntus ... 16.04 hat den Upstart eingestellt und verwendet systemd, so dass die meisten von uns es nicht einmal mehr verwenden ;-) 2. hängt von der Prozedur ab. Im Allgemeinen bearbeiten Sie die Datei in /etc/init.d/ für die Prozedur, die Sie bearbeiten möchten. Die aktuellen Dateien dort sollten einige Informationen dazu enthalten. 3. vim, nano, gedit.
Rinzwind
Ich habe über das Systemd-Problem und die Gabelung gelesen. Es scheint, dass es ein bisschen Streit um die Sache gegeben hat. Ich selbst bin nicht parteiisch - wenn ich das erreichen kann, was ich brauche, bin ich glücklich. Dies ist sowieso der ältere Laptop eines Freundes ... Ich werde ihn einfach sauber wischen und das neueste Lubuntu darauf legen, das, wie Sie betonen, standardmäßig mit systemd geliefert wird. Problem gelöst. Also danke für die kurze Ausbildung :-)
InteXX