screen starten wenn sich user einloggt

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
harryh
Beiträge: 159
Registriert: 26.03.2004 21:47:13

screen starten wenn sich user einloggt

Beitrag von harryh » 29.08.2004 11:58:55

hallo, ich möchte mit screen die konsole überwachen wenn sich jemand per
ssh bei mir einloggt. also "screen -q" müsste einfach gestartet werden wenn
sich der user "lol" z.b einloggt.

ich habe "screen -q" in die /home/lol/.bashrc geschrieben. dann startet sich zwar
screen, aber screen startet auch wieder eine neue bash - das heist es entsteht ein
kreislauf und screen wird immer wieder neu gestartet :-/

wie kann ich es machen das wenn sich z.b der user "lol" einloggt das dann einmal
"screen -q" gestartet wird??

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 29.08.2004 12:26:20

du kannst in der ".bashrc" doch einfach eine temporäre Datei erstellen wenn du dich einloggst und beim neuen einlogen überprüfst du ob es die Temp schon gibt..

Beispiel:

~/.bashrc:

Code: Alles auswählen

#----- Screen Start -----

TMP="/tmp/screen.`whoami`"

if [ ! -e $TMP ]
then
 touch $TMP
 screen -q
fi

#--------------------------

~/.bash_logout:

Code: Alles auswählen

...                                               <--- hier müsstest du dir irgendwie was überlegen das du 
                                                  <--- die Temp löschst wenn sie nicht mehr benötigt wird
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

init 0
Beiträge: 673
Registriert: 21.10.2003 19:40:28

Beitrag von init 0 » 29.08.2004 12:33:17

Hi,

Savar du machst es dir etwas zu einfach. Wenn sich der User das zweitemal einloggt während die erste Session noch läuft wird er nicht überwacht.

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 29.08.2004 12:48:52

Kannst du nicht die Startshell des Users auf z.B. /usr/local/run_screen legen und run_screen mit folgendem Inhalt erstellen?

Code: Alles auswählen

#!/usr/bin/screen -r
chsh solltest du dann natürlich deaktivieren

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 29.08.2004 12:52:24

@init 0:

seine Frage war wie er verhindern kann das man diese Login-Schleife bekommt..
die Möglichkeit, dass er sich zweimal einloggt hat er nicht vorausgesetzt. Mal abgesehen weiß ich nicht wie "screen" in dieser Hinsicht arbeitet.

Und es war ja auch "nur" ein Denkanstoss.
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

harryh
Beiträge: 159
Registriert: 26.03.2004 21:47:13

Beitrag von harryh » 29.08.2004 13:09:09

hmm wenn ich in der passwd als startshell /usr/local/run_screen angebe,
und in der /sr/local/run_screen "/usr/bin/screen -q" (so was es doch gemeint oder?)
steht geht es leider auch nicht :-/

Code: Alles auswählen

babel:~# su lol
No shell

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 29.08.2004 15:48:54

Ne, das "#!" sollte schon da stehen. Es funktioniert aber nicht, da screen sich dann nochmal aufrufen will. Kannst du nicht screen als shell festlegen und der screenrc soetwas wie "-r" reinschreiben?

harryh
Beiträge: 159
Registriert: 26.03.2004 21:47:13

Beitrag von harryh » 30.08.2004 19:38:29

hmm also wenn ich screen als shell für den user lol in der passwd eingebe
und mich als user lol einlogge ist es genauso als ob ich es in die .bashrc
hineinschreibe!

hmm "-r" würde aber "resumen" also auf eine öffene screen-session zugreifen
oder? ich möchte halt das screen 1mal gestartet wird und ich mit auf diese shell
zugreifen kann.

harryh
Beiträge: 159
Registriert: 26.03.2004 21:47:13

Beitrag von harryh » 01.09.2004 01:12:36

hat sonst keiner eine idee wie man screen direkt und einmal starten
kann, wenn sich der user lol einloggt?

Antworten