Autostart Debian Lenny

Dieses Thema im Forum "Linux & BSD" wurde erstellt von osiris, 1. Juli 2010 .

  1. 1. Juli 2010
    Guten Tag,

    hab ein kleines Problem mit inittab und dem Autostart von Programmen.

    Und zwar möchte ich, dass diverse Dienste bzw. Programme beim Start vom Root Server direkt mitgestartet werden.

    Einerseits Teamspeak3.
    Dies funktioniert einwandfrei, ich habe einfach bei /etc/inittab/ folgenden Eintrag hinzugefügt:
    17:2:respawn:./home/ts3/ts3/ts_startscript.sh start
    18:2 nce:./home/ts3/ts3/ts_startscript.sh start

    Einmal um den Dienst überhaupt zu starten, das zweite mal um ggf. bei einem Absturz den Dienst wieder zu starten.
    Kann ich das so stehen lassen?

    Der zweite Dienst ist ein Gameserver. (bzw. es sollten mehrere werden)
    Da diese mit diversen Startparamter gestartet werden, geht das nicht über die inittab, deshalb hab ich mir /etc/init.d/skeleton geschnappt und angepasst. Rausgekommen ist grundlegend folgendes:


    CS_USER=gameserver1
    PATH=/bin:/usr/bin:/sbin:/usr/sbin
    DIR=/home/gameserver1/orangebox
    DAEMON=srcds_run
    NAME=gameserver1
    DESC="gameserver1"
    PARAMS="-console -secure -game cstrike -port 27015 +map de_dust2 +maxplayers 34 -autoupdate"


    Sollte so weit eigentlich stimmen. Habe diese Datei in /etc/init.d/ geworfen.
    In der /etc/inittab dann folgenden Eintrag hinzugefügt:
    19:2 nce:/etc/init.d/gameserver1

    Funktioniert allerdings nicht.

    ls -al auf /etc/init.d/ bringt für die Datei gameserver1 folgendes:
    -rwxr-xr-x 1 root root 4.3K 2010-07-01 12:43 gameserver1

    Also Execute Rechte wären ja wie bei allen anderen Dateien.

    Die Datei habe ich via cp /home/gameserver1/orangebox/gameserver1 /etc/init.d/gameserver1 da hin gebracht.


    1.) Kann ich die Art, wie ich den TS3 Server so starte, so lassen? Oder gibt es da ein Sicherheitsrisiko, sollte ich es anders machen?
    2.) Warum startet der Gameserver nicht?
    3.) Rein Theoretisch, kann ich den Gameserver so lassen oder sollte ich einfach einen Softlink in eines der runlevel-dirs machen?


    System is Debian Lenny.

    Danke schön
     
  2. 1. Juli 2010
    AW: Autostart Debian Lenny

    Einen Autostart solltest du nicht mit inittab realisieren.

    Passe das skeleton script an (wie du es gemacht hast) und führe dann den Befehl
    update-rc.d <scriptname> defaults

    aus... (oder "man update-rc.d" für mehr Informationen)

    Also zu 1.: Realisiere is möglichst mit dem skeleton/rc.d Modell, dafür ist es da.
    zu 2. Musst du ggf. mal ein paar Debug Ausgaben in dein skeleton script einfügen oder mit Hilfe von dmesg gucken, ob du eine Fehlermeldung siehst.
    zu 3. Die symbolischen Links werden automatisch von update-rc.d erstellt.
     
  3. 2. Juli 2010
    hat so funktioniert mit update-rc.d

    danke schön

    So, noch eine kurze Frage diesbezüglich.

    Jetzt werden die Server ja vom System selbstständig gestartet.

    Allerdings besteht jetzt das Problem, dass ein normaler User die Server nicht starten kann?!
    Wenn ich als stink normaler User ohne root Rechte in /etc/init.d gehe und ./gameserver stop oder ./gameserver start mache, dann steht: server nicht startbar.

    Wenn ich als anderer User in den Ordner gehe, also nicht der User gameserver1, dann kommt zusätzlich, dass die datei nicht ausführbar ist.

    Gibt es da eine Lösung?
     
  4. 3. Juli 2010
    AW: Autostart Debian Lenny

    Nein, diese Scripte müssen mit root Rechten gestartet werden. Der start-stop-daemon setzt nach dem Start dann den Benutzer damit es nicht unter dem privilegierten Benutzer läuft.

    Je nachdem wie du Debian installiert hast kannst du "sudo /etc/init.d/gameserver start" verwenden.
    Ggf. musst du als root aber mit "visudo" die sudoers Datei anpassen (auch hier verweise ich einfach wieder auf "man visudo" bzw. "man sudoers")
     
  5. 4. Juli 2010
    AW: Autostart Debian Lenny

    Per sudo wäre es wohl die bequemste Möglichkeit, da kannst du dann für jeden User einstellen, welche Dateien er ausführen kann etc. Du kannst den root-Zugriff also nur auf das gameserver1-skript zulassen.
    Eine nicht ganz so aufwendige Möglichkeit wäre, einfach das suid-bit zu setzen (chmod +s gameserver1), allerdings ist das ganze unsicherer als mit sudo, da jetzt jeder das Skript ausführen kann.
     
  6. 5. Juli 2010
    AW: Autostart Debian Lenny

    Es geht rein theoretisch eh nur darum, dass 3 Leute (insgesamt) Zugriff auf den root haben, 2 davon kein root passwort und die sollen das Skript starten, stoppen können.

    Da ist die einfachste Methode wohl chmod +s, ansonsten müsste ich ihnen ja das su passwort anvertrauen.

    Die Skripte als Root neustarten ist ja kein Problem.
     
  7. 5. Juli 2010
    AW: Autostart Debian Lenny

    Nein, du benötigst kein su. Du kannst sudo so einstellen, dass es ohne Passwort (oder mit Passwort des jeweiligen Benutzers) funktioniert und nur die executables ausführen darf, die du angibst.

    Aber du hast ja jetzt eine Lösung gefunden
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.