Hallo Forum.
Ich habe ein kleines Problem, das Tante Google leider nicht lösen konnte.
Ich möchte einen Befehl ausführen, sobald sich ein User anmeldet.
Im konkreten Fall:
UserName: Halt -> Passwort: Halt -> Auszuführender Befehl: halt
UserName: Reboot -> Passwort: Reboot -> Auszuführender Befehl: reboot
Damit soll jemand meinen Homeserver neu starten können, ohne das er selber auf der Konsole "rumhacken" soll/muss/braucht.
Ich habe zwar viele Anleitungen zum Thema "Autostart" gefunden, doch leider nur für globale Ausführung, also nicht abhängig vom LoginNamen.
Wäre toll, wenn mir jemand die Lösung schreiben könnte - oder mich zumindest in die richtige Richting schubbsen würde.
Danke
Robert Kraus
Befehl nach user Login ausführen (je user)
Re: Befehl nach user Login ausführen (je user)
.profile ?!
Re: Befehl nach user Login ausführen (je user)
Ich würde als Shell in /etc/passwd eine Art Restricted-Shell einsetzen:
Darin dann etwa sowas:
Natürlich den Eintrag in /etc/sudoers per "visudo" nicht vergessen.
Gut und einfach ist die Lösung natürlich nicht. Einfacher wäre es, wenn Du SSH-Keys zur Anmeldung als Benutzer "root" nutzen würdest. Hierbei kannst du einzelne Public-Keys in /root/.ssh/authorized_keys so berechtigen, dass sie nur einen Befehl ausführen dürfen und damit auch direkt ausführen:
Der Benutzer braucht dann nur
aufrufen. Keine Anmeldung, kein Passwort. Je nach genutztem SSH-Private-Key wird die Aktion ausgeführt.
Sollte der Benutzer mehrere Befehle ausführen sollen (also "halt" oder "reboot"), so kannst du für den selben Public-Key beide Befehle eintragen. Aufruf sollte dann so sein:
Natürlich darf der Benutzer mit dem zugehörigen Private-Key nur diese Befehle ausführen.
Code: Alles auswählen
halt:x:1002:1002:halt,,,:/home/halt:/usr/local/bin/halt
Code: Alles auswählen
#!/bin/sh
sudo /sbin/halt
Gut und einfach ist die Lösung natürlich nicht. Einfacher wäre es, wenn Du SSH-Keys zur Anmeldung als Benutzer "root" nutzen würdest. Hierbei kannst du einzelne Public-Keys in /root/.ssh/authorized_keys so berechtigen, dass sie nur einen Befehl ausführen dürfen und damit auch direkt ausführen:
Code: Alles auswählen
"command=/sbin/halt" ssh-rsa AAAAB....
Code: Alles auswählen
ssh root@server
Sollte der Benutzer mehrere Befehle ausführen sollen (also "halt" oder "reboot"), so kannst du für den selben Public-Key beide Befehle eintragen. Aufruf sollte dann so sein:
Code: Alles auswählen
ssh root@server /sbin/halt
ssh root@server /sbin/reboot