Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
Friesi
- Beiträge: 582
- Registriert: 07.07.2003 20:40:11
- Wohnort: Stromberg
-
Kontaktdaten:
Beitrag
von Friesi » 25.04.2004 22:55:24
Ich möchte gerne in einem Perlscript den Befehl Logout verwenden.
Rufe ihn mit
auf doch da passiert nix.
Bei anderen scripten mache ich immer /bin/BEFEHL
doch finde ich nirgens die logout datei! weder in /bin /usr/bin oder /usr/local/bin
Will einfach, das sich beim beenden des Scriptes der User sich Automatisch auslogt.
Wie bekomme ich das denn hin?!
-
Joghurt
- Beiträge: 5244
- Registriert: 30.01.2003 15:27:31
- Wohnort: Hamburg
-
Kontaktdaten:
Beitrag
von Joghurt » 26.04.2004 04:23:45
"logout" ist ein interner Shell-Befehl. Um ein "logout" zu simulieren, musst du das HUP-Signal an die Login-Shell senden. Deren PID herauszufinden, ist meines Wissens nach nicht leicht (so kannst du zum beispiel nicht einfach die Parent-PID des Perl interpreters nehmen, da dieser auch in einer Subshell aufgerufen werden kann) Du könntest in der /var/run/utmp (man utmp) nach der PID der Loginprozesses suchen; allerdings bekommst du probleme, wenn der Benutzer mehr als einmal eingeloggt ist.
Was genau willst du denn machen?
-
Friesi
- Beiträge: 582
- Registriert: 07.07.2003 20:40:11
- Wohnort: Stromberg
-
Kontaktdaten:
Beitrag
von Friesi » 26.04.2004 08:47:03
mhm ..
Also ich möchte, das sich jemand via SSH auf den Server einloggt aber da nix machen kann.
Es sollte also sofort dieses Script gestartet werden wo 3 Optionen drin stehen. Dann kann er 1, 2 oder 3 eingeben. Wenn die Aufgaben erledigt sind und das Script am ende ankommt. Soll er den User direkt wieder ausloggen.
Das Script würde ich als shell nehmen (anstatt /bin/bash) geht das überhaupt?
Möchte halt nicht, das er über die Shell auf dem Server rumgurcken kann, da ich ihn ja nicht in seinem Verzeichnis "einsperren" kann? Oder geht das irendwie per SSH?
-
Bert
- Beiträge: 3751
- Registriert: 16.07.2002 14:06:52
- Wohnort: Dresden
-
Kontaktdaten:
Beitrag
von Bert » 26.04.2004 09:44:40
Du könntest dieses Script dem entsprechenden Benutzer als Login Script zuweisen (/etc/passwd). Dann kommt er nur an dieses Script und sonst nichts. Ich mach sowas gerne um Benutzern zwar das Ändern Ihrer Passwörter zu ermöglichen, sonnst aber keinen Zugang zu geben.
Hab von Perl keine Ahnung. Eventuell fehlen dann ein paar Umgebungsvariablen?
Programmer: A biological machine designed to convert caffeine into code.
xmpp:
bert@debianforum.de
-
Friesi
- Beiträge: 582
- Registriert: 07.07.2003 20:40:11
- Wohnort: Stromberg
-
Kontaktdaten:
Beitrag
von Friesi » 26.04.2004 15:38:03
Ja genau so hab ich das auch gemacht.
Doch wenn das Script durchgeladen ist, sollen die User ja nicht einfach die Shell schließen, sondern sollen sich ausloggen. Bzw werden die Automatisch ausgeloggt. Und dies will ich versuchen hinzubekommen.
-
Joghurt
- Beiträge: 5244
- Registriert: 30.01.2003 15:27:31
- Wohnort: Hamburg
-
Kontaktdaten:
Beitrag
von Joghurt » 26.04.2004 15:40:24
Wenn du dein Skript als Login-Shell in der /etc/passwd einträgst, wird der Benutzer ausgeloggt, nachdem sich das Skript beendet.
(BTW: scp und sftp werden in diesem Fall wohl nicht mehr gehen)
-
Bert
- Beiträge: 3751
- Registriert: 16.07.2002 14:06:52
- Wohnort: Dresden
-
Kontaktdaten:
Beitrag
von Bert » 26.04.2004 15:41:54
Sie sollten ja gar keine Shell bekommen. Ihre 'Shell' ist ja Dein Script. Ich hab es mit /bin/paswd gemacht, dann bekommen die Benutzer nur die Aufforderung ein neues Passwort einzugeben. Wenn sie das gemacht haben, beendet sich passwd und die Verbindung ist wieder dicht. So solte es doch mit Deinem Script auch gehen?
Programmer: A biological machine designed to convert caffeine into code.
xmpp:
bert@debianforum.de
-
Friesi
- Beiträge: 582
- Registriert: 07.07.2003 20:40:11
- Wohnort: Stromberg
-
Kontaktdaten:
Beitrag
von Friesi » 26.04.2004 15:44:22
Ah
Habs nun ausprobiert und es funktioniert!
Danke Jungs *gg*
Wieder etwas gelernt