Hallo! Bei mir steht in einer .profile von einem User in den letzten beiden Zeilen: export WINDOWMANAGER=/usr/X11R6/bin/netscape ; startx exit Jetzt möchte ich aber vor dem exit eine Benutzerabfrage und Passwortabfrage setzen. Wenn diese stimmen soll exit eintreten wenn nicht soll gleich wider der Windowmanager mit startx gestartet werden. Der Benutzername und das Paßwort kann im Skript stehen! Aber wie schreibe ich das? Danke Daniel EMAIL: Daniel@bladeck.de --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
* Daniel Bladeck schrieb am 08.Okt.2000:
Bei mir steht in einer .profile von einem User in den letzten beiden Zeilen: export WINDOWMANAGER=/usr/X11R6/bin/netscape ; startx exit
Jetzt möchte ich aber vor dem exit eine Benutzerabfrage und Passwortabfrage setzen. Wenn diese stimmen soll exit eintreten wenn nicht soll gleich wider der Windowmanager mit startx gestartet werden. Der Benutzername und das Paßwort kann im Skript stehen! Aber wie schreibe ich das?
Verstehe ich nicht. Der User hat sich doch gerade eingeloggt, reicht das nicht? Eine zusätzliche Sicherheit bekommst Du dadurch nicht, schon gar nicht, wenn das Paßwort irgendwo im Klartext steht. Bernd --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Daniel Bladeck wrote:
Hallo!
Bei mir steht in einer .profile von einem User in den letzten beiden Zeilen: export WINDOWMANAGER=/usr/X11R6/bin/netscape ; startx exit
Jetzt möchte ich aber vor dem exit eine Benutzerabfrage und Passwortabfrage setzen. Wenn diese stimmen soll exit eintreten wenn nicht soll gleich wider der Windowmanager mit startx gestartet werden. Der Benutzername und das Paßwort kann im Skript stehen! Aber wie schreibe ich das?
hi, auch wenn ich nicht verstehe warum... ;-) Nur so ne Idee... Ungetestet: Trage einen User ein z.B: dummy. useradd -c "DummyUser" -d "/var/lib/dummy" -m -g nogroup \ -s /usr/local/bin/dummylog -p passwort -u 555 dummy Gib dummy ein gutes Passwort. Erstelle das Script /usr/local/bin/dummylog: #--- cat >/usr/local/bin/dummylog #!/bin/sh echo "Und weg..." exit ^D #--- chmod u+x /usr/local/bin/dummylog chmod go-rwx /usr/local/bin/dummylog ~/.profile ---------- [...] export WINDOWMANAGER=/usr/X11R6/bin/netscape while true do startx [su dummy 2>/dev/null] && exit || echo "Danke" done exit ----------- Die Schleife laeuft, solange su fehlschlaegt, (falsches Passwort) Wie gesagt, ungetestet.. man 3 crypt man 1 expect an Vielleicht gibts da auch noch Moeglichkeiten. -- o long... bernd ------------------------------------------------------------------------ --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Am Mon, 09 Okt 2000 schrieb Bernd Obermayr:
Jetzt möchte ich aber vor dem exit eine Benutzerabfrage und Passwortabfrage setzen. Wenn diese stimmen soll exit eintreten wenn nicht soll gleich wider der Windowmanager mit startx gestartet werden. Der Benutzername und das Paßwort kann im Skript stehen! Aber wie schreibe ich das?
auch wenn ich nicht verstehe warum... ;-) Nur so ne Idee... Ungetestet:
Vielleicht gibts da auch noch Moeglichkeiten.
Also ich habe eine ähnliche Situation mal mit einem "su-Salto rückwärts" gelöst. Das geht mit einem Shell-Skript, das als root laufen müßte (kann man über sudo problemlos machen). Da drin steht dann erstmal eine Abfrage des Benutzernamens mittels dialog (man dialog sollte helfen). Danach der Gag am Ganzen (schlagt mich, aber ne bessere Lösung zur Passwortabfrage hab ich nicht gefunden): u nobody -c "su $USER -c \"mycommand.sh\"" wobei "mycommand.sh" dann ein Shellskript ist, das wieder als der User ausgeführt wird (oder wieder über sudo als root). Ob das die Standard-Verfahrensweise ist, weiß ich aber nicht. -- Erhard Schwenk http://www.fto.de http://www.akkordeonjugend.de --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Hallo! Ja das schaut sehr gut aus, wenn es so klappen würde. Das Problem ist nur das ich zu keiner Paßwortabfrage gelange. Das Skript läuft jetzt in einer Endlosschleife und es wird immer der befehl startx ausgeführt. Ich habe den Benutzer angelegt und dann die Skripte erweitert.
hi, auch wenn ich nicht verstehe warum... ;-) Soll so was ähnliches wie eine Servstation werden und es sind auch Leute dran die sich mit Computer nicht auskennen. Die sollen halt den Netscape nicht einfach beenden können und mit der Shell dann spielen können.
Trage einen User ein z.B: dummy.
useradd -c "DummyUser" -d "/var/lib/dummy" -m -g nogroup \ -s /usr/local/bin/dummylog -p passwort -u 555 dummy Habe ich gemacht und angelegt!
Erstelle das Script /usr/local/bin/dummylog:
#--- cat >/usr/local/bin/dummylog #Was macht diese Zeile???????????????????????? (oben) #!/bin/sh echo "Und weg..." exit ^D #Für was diese Zeile (oben)???????????????????????? #--- chmod u+x /usr/local/bin/dummylog chmod go-rwx /usr/local/bin/dummylog
~/.profile ---------- [...] export WINDOWMANAGER=/usr/X11R6/bin/netscape
while true do startx [su dummy 2>/dev/null] && exit || echo "Danke" done exit ----------- Die Schleife laeuft, solange su fehlschlaegt, (falsches Passwort)
Wenn eine Passwortabfrage stattfinden würde, währe es besser! Es wird immer gleich wieder X mit den Netscape gestartet! Kann man das noch verbessern? Danke Daniel EMAIL: Daniel@bladeck.de --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Daniel Bladeck wrote:
Hallo!
Ja das schaut sehr gut aus, wenn es so klappen würde. Das Problem ist nur das ich zu keiner Paßwortabfrage gelange. Das Skript läuft jetzt in einer Endlosschleife und es wird immer der befehl startx ausgeführt. Ich habe den Benutzer angelegt und dann die Skripte erweitert.
hi, auch wenn ich nicht verstehe warum... ;-) Soll so was ähnliches wie eine Servstation werden und es sind auch Leute dran die sich mit Computer nicht auskennen. Die sollen halt den Netscape nicht einfach beenden können und mit der Shell dann spielen können.
Trage einen User ein z.B: dummy.
useradd -c "DummyUser" -d "/var/lib/dummy" -m -g nogroup \ -s /usr/local/bin/dummylog -p passwort -u 555 dummy Habe ich gemacht und angelegt!
Erstelle das Script /usr/local/bin/dummylog:
#--- cat >/usr/local/bin/dummylog #Was macht diese Zeile???????????????????????? (oben)
Hi, entschuldigung, ich dachte Du verstehst das. Okay, wenn Du das so in der Konsole oder im xterm eingibst.. Also Du schreibst cat >/usr/local/bin/dummylog das heisst, Du rufst den Befehl cat auf und sagst ihm er soll alles was Du danach eingibst in die Datei /usr/local/bin/dummylog leiten (das Zeichen > macht das) Danach gibst Du den Rest ein, so wies da steht, an jedem Zeilen- ende Return druecken. Am Ende gibst Du ^D ein, d.h Du drueckst Ctrl D, das ist bei Unices das EOF (End of File) Zeichen. Damit wird cat beendet und legt die Datei /usr/local/bin/dummylog an Du kannst sie Dir jetzt mit less /usr/local/bin/dummylog ansehen. Das ist eine Moeglichkeit schnell eine kleine Textdatei anzulegen, ohne dafür einen Editor aufzurufen.
#!/bin/sh echo "Und weg..." exit ^D #Für was diese Zeile (oben)????????????????????????
Siehe oben.
#--- chmod u+x /usr/local/bin/dummylog chmod go-rwx /usr/local/bin/dummylog
~/.profile ---------- [...] export WINDOWMANAGER=/usr/X11R6/bin/netscape
while true do startx [su dummy 2>/dev/null] && exit || echo "Danke" done exit ----------- Die Schleife laeuft, solange su fehlschlaegt, (falsches Passwort)
Wenn eine Passwortabfrage stattfinden würde, währe es besser! Es wird immer gleich wieder X mit den Netscape gestartet! Kann man das noch verbessern?
Ich vermute, das Script /usr/local/bin/dummylog gibts noch garnicht... Zum besseren Verstaendnis, die Zeile: [su dummy 2>/dev/null] && exit || echo "Danke" macht Folgendes: wenn "su dummy" erfolgreich dann=&& verlasse die shell sonst=|| echo "Danke" su dummy ist erfolgreich wenn ein richtiges Passwort eingegben wurde, dann wird das script abgebrochen, somit ist die Schleife verlassen der Befehl 2>/dev/null heisst: leite die evtl. Fehlermeldung nach /dev/null das Zeichen > kennst Du schon von vorher ;-) 0 = Standard Input 1 = Standard Output 2 = Standard Error (Output) Das Zeichen [ wird von der Shell als Befehl `test` interpretiert. Da diese Klammer in der Shell auch noch fuer Regulaere Ausdruecke gebraucht wird muss die schliessende Klammer ] am Ende der Bedingung sein. Das ganze ist eine Schreibweise fuer faule, besser Verstaendlich, weil leichter lesbar ist es so: if test `su dummy 2>/dev/null` ; then ## beachte unbedingt die `` 1) ## ^^^ ; = naechster befehl folgt.. exit ## Bedingung erfuellt --> und weg.. else echo "Danke" ## nicht erfuellt.. next try fi 1) = backticks = Befehl fuer die Shell einen Befehl als Subprozess auszu- fuehren So, wenn also das Script /usr/local/bin/dummylog nicht existiert oder fehlerhaft ist, ergibt `su dummy` einen Fehler da das ja die Shell fuer den Login von dummy ist. Das ergibt die Endlosschleife... Thats all... Wegen 2>/dev/null siehst Du die Fehlermeldung nicht. Schau mal in /var/log/messages nach, da sollte was von "su dummy: Login failed" oder so stehen. Versuchs mal, wenns dann immer noch nicht geht, schick mir das File /usr/local/bin/dummylog und die Ausgabe von finger -m dummy id dummy und alle Fehlermeldungen mit. Ich habs grad ausprobiert, bei mir gehts ;-) Fuer das was Du da vorhast, solltest Du unbedingt den Umgang mit der Shell beherrschen, sonst haut Dich jedes Kiddy aus den Latschen ;-)) Ein sehr gutes Buch ist z.B: Unix Shells von Helmut Herold, Addison Wesley, ISBN 3-8273-1035-0 ca. 90 Steine ;-) Und: man cat, man test, vor Allem: man bash ;-))) Bitte kein CC an mich, ich lese die Liste mit. -- o long... bernd ------------------------------------------------------------------------ --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
participants (4)
-
B.Brodesser@online-club.de
-
eschwenk@fto.de
-
Illuminatus@t-online.de
-
postmaster@bladeck.de