verhindern das ein user ein skript beendet

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
cordovan
Beiträge: 467
Registriert: 03.01.2004 22:37:28

verhindern das ein user ein skript beendet

Beitrag von cordovan » 14.04.2004 17:16:43

hi!

gibt es eine möglichkeit dafür zu sorgen das ein user ein bash skript nicht beenden kann bzw sobald er es versucht rausfliegt aus der ssh sitzung?

thx4help

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Beitrag von peschmae » 14.04.2004 19:03:42

Könntest du noch ein bisschen ausführlicher werden in Bezug auf was du da genau meinst. Ich versteh nämlich nicht wie/wo/wer/was das Script ausführt und wieso der User fliiiegen soll. :)

MfG Peschmä

Benutzeravatar
cordovan
Beiträge: 467
Registriert: 03.01.2004 22:37:28

Beitrag von cordovan » 15.04.2004 08:45:25

ok

user logged sich via ssh ein
.bashrc startet automatisch ein skript
im skript hat er ein paar mögliche optionen die ich ihm zugedacht hab

aber wie verhindere ich nun das der user das skript beendet zb mit strg+c???

Benutzeravatar
mistersixt
Beiträge: 6601
Registriert: 24.09.2003 14:33:25
Lizenz eigener Beiträge: GNU Free Documentation License

Beitrag von mistersixt » 15.04.2004 10:27:46

Das geht mit trap, hier ein Beispiel:

Code: Alles auswählen

#!/bin/bash

sorry()
{
        echo "I'm sorry. I can't do that."
        sleep 3
}

# trap CTRL-C and execute the sorry() function:
trap sorry INT

echo "Waiting 10 seconds..."
sleep 10
Gruss, mistersixt.

Benutzeravatar
ckihm.deb
Beiträge: 263
Registriert: 26.12.2002 18:49:38
Wohnort: Saarbrücken

Beitrag von ckihm.deb » 15.04.2004 11:22:07

Das verhindern geht leider gar nicht. Du kannst zwar verhindern das ein STRG + C den Prozess beendet ( siehe Beitrag von mistersixt), aber das Signal SIGKILL was z.B. gesendet wird wenn man 'kill -9 pid' eingibt kann weder abgefangen noch ignoriert werden und beendet auf jedenfall den Prozess.

Benutzeravatar
spiffi
Beiträge: 1128
Registriert: 09.08.2003 19:02:27

Beitrag von spiffi » 15.04.2004 12:02:51

Mag sein. Aber um ein SIGKILL absetzen zu können, muß der Benutzer erst mal ne Shell offen haben. Er landet aber nach dem Einloggen direkt im Skript.

cordovan, es sollte AFAIK auch möglich sein, dem Benutzer das Skript als Loginshell einzutragen. Beendet er dann auf irgendeine Weise das Skript, wird er ausgeloggt.
No language can express every thought unambiguously, least of all this one. -- D. R. Hofstadter

Benutzeravatar
cordovan
Beiträge: 467
Registriert: 03.01.2004 22:37:28

Beitrag von cordovan » 15.04.2004 12:14:30

thx für eure tipps :-)

Antworten