Shell Script unter anderem Benutzer laufen lassen

  • Ersteller Ersteller Snycs
  • Erstellt am Erstellt am
S

Snycs

Gast
Hallo ich habe eine Frage. Ich habe ein Script geschrieben, mit dem ich verschiedene Server starten, stoppen und restarten kann. Dieses Script möchte ich nun in Ajenti einbinden, sodass ich das per Knopfdruck erledigen kann. Wenn ich das Script aber mit Ajenti starten will, wird es immer als Root ausgeführt. Kann ich irgendwo am Anfang des Scriptes hinschreiben dass das gesamte Script als Nutzer mc gestartet wird und nicht als Root?

Mit freundlichen Grüßen
Snycs
 
Wieso? normalerweise sollte nur root server starten und beenden. Normalerweise kann das nur root, z.B. wenn ein Port <1024 gebraucht wird.
Aber: genauso wie du etwas suid root ausführen lassen kannst, kannst du es auch suid mc machen.
 
Vll habe ich mich nich richtig ausgedrückt. Mit Servern meine ich keine "echten" Server, sondern Minecraftserver in einem BungeeCord Netzwerk und diese sollten für gewöhlich nicht unter dem rootbenutzer laufen.

Kann ich suid mc einfach am Anfang des Scripts anfügen oder muss ich das vor den Startbefehl setzten, also suid mc srv.sh

MFG
Snycs
 
Hi,

typisch deutsche Foren, statt eine Lösung zu präsentieren wird erstmal dagegen diskutiert.

Code:
You can do that with su or sudo, no need for both.

sudo -H -u otheruser bash -c 'echo "I am $USER, with uid $UID"' 
The relevant parts of man sudo:

       -H          The -H (HOME) option requests that the security policy set
                   the HOME environment variable to the home directory of the
                   target user (root by default) as specified by the password
                   database.  Depending on the policy, this may be the default
                   behavior.
--

       -u user     The -u (user) option causes sudo to run the specified
                   command as a user other than root.  To specify a uid
                   instead of a user name, use #uid.  When running commands as
                   a uid, many shells require that the '#' be escaped with a
                   backslash ('\').  Security policies may restrict uids to
                   those listed in the password database.  The sudoers policy
                   allows uids that are not in the password database as long
                   as the targetpw option is not set.  Other security policies
                   may not support this.
su can only switch user without providing a password if you are root. See Caleb's answer

Quelle zum nachlesen:
http://askubuntu.com/questions/294736/run-a-shell-script-as-another-user-that-has-no-password
 
Zuletzt bearbeitet:
Kann ich diesen Befehl auch irgendwie mit in das Script packen, sodass ich nur das Script aufrufen muss und es wird Automatisch als Nutzer mc ausgeführt?
 
Zurück
Oben