SSH: .sh automatisch nach starten des Server-pcs a

Servus,

nach dem ich meinen Server endgültig hardware-mäßig konfiguriert habe, hab ich ubuntu 8.10 II SE „draufgeknallt“. Jetzt brauche ich aber ein Programm, dass ich moment bei jedem Hochfahren manuell starten muss. In der Readme steht jetzt aber noch, dass man das Programm als normaler User und nicht als root starten soll (sonst hätte ich einfach einen Link in /etc/rc2.d gesetzt). Meine Frage:
Wie kann ich ein Programm direkt nach dem automatischen User-Login ausführen, und zwar regelmäßig?

grtz
michi

Hallo,

nach dem ich meinen Server endgültig hardware-mäßig
konfiguriert habe, hab ich ubuntu 8.10 II SE „draufgeknallt“.
Jetzt brauche ich aber ein Programm, dass ich moment bei jedem
Hochfahren manuell starten muss. In der Readme steht jetzt
aber noch, dass man das Programm als normaler User und nicht
als root starten soll (sonst hätte ich einfach einen Link in
/etc/rc2.d gesetzt).

Was ist das denn fuer ein Programm? Und vor allem, soll es fuer jeden angemeldeten Benutzer gestartet werden? oder ingesamt nur einmal?

Meine Frage:
Wie kann ich ein Programm direkt nach dem automatischen
User-Login ausführen, und zwar regelmäßig?

Was startet denn das automatische User-Login? eine Shell? Dann in die .bash_profile, zum Beispiel.

Gruesse,
Moritz

Jetzt brauche ich aber ein Programm, dass ich moment bei jedem
Hochfahren manuell starten muss. In der Readme steht jetzt
aber noch, dass man das Programm als normaler User und nicht
als root starten soll (sonst hätte ich einfach einen Link in
/etc/rc2.d gesetzt). Meine Frage:
Wie kann ich ein Programm direkt nach dem automatischen
User-Login ausführen, und zwar regelmäßig?

a)
Ein automatischer User-Login hat auf einem Server nichts verloren

b)
Natürlich erstellst du einfach einen Link in /etc/rcX.d. Dafür sind diese Verzeichnisse ja geschaffen worden um beim Start irgendwelche Dinge auszuführen. Mit dem Link verweist du auf ein Shell-Skript, welches dann mit

su benutzername -c /pfad/zu/deinem/eigentlichen/skript

das besagte Skript als der gewünschte Benutzer ausführt.

wie, für jeden Nutzer?
Auf dem Server ist Gnome (zwecks vnc, ist nur für den Notfall), der Nutzer wird automatisch angemeldet. (Bis dahin habe ich nur den pwr-knopf am gehäuse gedrückt) Sobald der Nutzer angemeldet ist, soll die Datei /home/michi/server/start.sh ausgeführt werden. Diese sh-Datei startet einen Trackmania-Server mit Attributen. Laut Hersteller sollte der Server nicht als root (Sicherheit) gestartet werden. Oder kann ich in /etc/rc2.d auch Nutzer festlegen?

a)
Ein automatischer User-Login hat auf einem Server nichts verloren

b)
Natürlich erstellst du einfach einen Link in /etc/rcX.d. Dafür sind :diese Verzeichnisse ja geschaffen worden um beim Start irgendwelche :smiley:inge auszuführen. Mit dem Link verweist du auf ein Shell-Skript, :welches dann mit

su benutzername -c /pfad/zu/deinem/eigentlichen/skript

das besagte Skript als der gewünschte Benutzer ausführt.

achso. ich dachte, dass man um Programme zu starten erst eingeloggt werden muss (nach win-Prinzip). Das heißt, ich kann Programme starten lassen, sobald (oder bevor) der login-screen erscheint, richtig?

Außerdem:
was muss ich unter ubuntu eingeben? su funktioniert nicht.

Sorry, falsch formuliert:
brauche in in der zu startenden sh ein passwort bzw. wie kann ich das angeben? Nicht, dass der mir nach einem Passwort fragt, ich aber nichts davon mitkriege…

Mit dem Link verweist du auf
ein Shell-Skript, welches dann mit

su benutzername -c
/pfad/zu/deinem/eigentlichen/skript

das besagte Skript als der gewünschte Benutzer ausführt.

Ich würde ein

su - benutzername -c /pfad/zu/deinem/eigentlichen/skript

benutzen. Das Minus hinter dem su sorgt dafür, dass die Umgebungsvariablen von benutzername verwendet werden anstatt die von root.

Gruß,
Stefan

brauche in in der zu startenden sh ein passwort bzw. wie kann
ich das angeben? Nicht, dass der mir nach einem Passwort
fragt, ich aber nichts davon mitkriege…

Das Skript wird doch beim Start als root ausgeführt. Root braucht kein Passwort um mittels „su“ Programme als anderer Benutzer zu starten. Es wird also keine Abfrage kommen.

achso. ich dachte, dass man um Programme zu starten erst
eingeloggt werden muss (nach win-Prinzip).

Auch bei Windows musst du dich als Benutzer nicht einloggen, damit ein Programm starten kann. Alle Dienste werden dort genau wie bei Linux beim Start des System gestartet ohne dass ein realer Benutzer eingeloggt ist.

Das heißt, ich kann Programme starten lassen, sobald (oder bevor)
der login-screen erscheint, richtig?

Das hat mit dem Login-Screen nichts zu tun. Du kannst das Programm auch weit vor dem Login-Screen starten. Wann das Programm startet legst du ja fest in dem du den Link im entsprechenden Run-Level einfügst und ihn entsprechend benennst.

Unter Ubuntu gibt es dazu das Tool „update-rc.d“ um Skripte in den Boot-Prozess einzufügen oder zu entfernen.

Lies dir doch erst mal http://wiki.ubuntuusers.de/Dienste durch. Dort ist erklärt, wie beim Start des System die verschiedenen Dienste und Skripte gestartet werden. Im Abschnitt „Eigenes-Start-Stop-Skript-erstellen“ ist dort auch erklärt, wie du dein eigenes Skript dort einbindest.

Zusätlich zu dem was Dir schon geraten wurde (weil ich das ‚su‘-Geraffel nicht mag:

Du kannst sowas als Service definiren. Dafür braucht Du ein aufsführbares runscript in /etc/init.d/ und mußt mit rc-update dafür sorgen, daß es auch angestoßen wird. Wenn Du meinst, daß man Dir das Script highjacken könnte kannst du es dabei auch mit /chroot dafür sorgen, daß es keinen Vollen Zugriff auf den Rechner hat.
Links dazu:
http://linux.about.com/library/cmd/blcmdl1_runscript…
http://en.wikipedia.org/wiki/Daemon_(computer_software)

Danke. Funktioniert jetzt wie gewünscht.