passwortabfrage mit timeout

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von dosenfleisch, 02.06.2007.

  1. #1 dosenfleisch, 02.06.2007
    Zuletzt bearbeitet: 15.08.2008
    dosenfleisch

    dosenfleisch Foren As

    Dabei seit:
    29.03.2007
    Beiträge:
    75
    Zustimmungen:
    0
    hallo,

    ich benötige einen dialog mit timeout, um eine passwortabfrage zu realisieren, die wenn sie ignoriert wird, eine aktion veranlaßt.

    leider konnte ich bisher keines finden. xdialog hat zwar einen timeout, aber offenbar keine passwortfunktion (***), kdialog hingegen hat diese, aber dann auch nur ohne timeout.

    welcher dialog hat beide funktionen integriert?

    ich habe es auch schon folgendermaßen gemacht, funktioniert aber nicht:

    Code:
    kdialog --password &
    sleep 10
    killall kdialog
    
    so kann ich jedoch das passwort nicht auslesen.
    also folgendes

    Code:
    pass=$(kdialog --password &)
    sleep 10
    killall kdialog
    echo $pass
    
    so verliert das & aber seine funktion und kdialog verhindert die weitere ausführung des scriptes.

    und folgendes hat keine sternchen
    Code:
    if xmessage -timeout 10 Dein Passwort; then ??? ; fi
    
    edit:
    lösung gibt es inzwischen durch xdialog:
    Code:
    password=$(Xdialog --title "Dein Passwort bitte" --timeout 30 --password --inputbox "Passwort." 0 0 2>&1)
    echo $password
    
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 tomuschat, 06.01.2008
    tomuschat

    tomuschat Grünschnabel

    Dabei seit:
    06.01.2008
    Beiträge:
    1
    Zustimmungen:
    0
    Timeout für kdialog

    Ich habe hier ein kleines Skript, das genau das macht, was Du brauchst. Ist zwar in perl geschrieben, es sollte aber kein Problem sein, das auch als Shell-Skript umzuschreiben
    Viel Erfolg!

    Michael


    #!/usr/bin/perl

    my $cmd = "kdialog --print-winid --msgbox \"mein Name ist Hase\" 2>/dev/null &";
    open( ID, "$cmd |") or die "$!";
    ( my $winID = <ID>) =~ s/\D//g;
    system( "( sleep 10 ; xkill -id $winID) 2>/dev/null 1>&2 &");
    print "going to exit in 15 seconds\n";
    sleep 15;
     
  4. #3 Wolfgang, 06.01.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Mit der bash ganz einfach:
    Code:
    $ read -t 10 -s var || echo "fehler"; echo "$var eingegeben";
    Gruß Wolfgang
     
  5. P17

    P17 Schandensbegrenzer

    Dabei seit:
    06.12.2007
    Beiträge:
    196
    Zustimmungen:
    0
    Ort:
    Germany
    [OT]
    warum gibt es eigentlich keinen Manual-Eintrag für read?
    wie finde ich die read-optionen raus?
    [/OT]
     
  6. #5 gropiuskalle, 06.01.2008
    gropiuskalle

    gropiuskalle terra incognita

    Dabei seit:
    01.07.2006
    Beiträge:
    4.857
    Zustimmungen:
    0
    Ort:
    Berlin
    Es gibt schon einen manual-Eintrag für 'read' - probier mal

    Code:
    man bashbuiltins
     
  7. #6 P17, 06.01.2008
    Zuletzt bearbeitet: 06.01.2008
    P17

    P17 Schandensbegrenzer

    Dabei seit:
    06.12.2007
    Beiträge:
    196
    Zustimmungen:
    0
    Ort:
    Germany
    Code:
    root@debian~ # man bashbuiltins
    No manual entry for bashbuiltins
    zsh: exit 16    man bashbuiltins
    
    /edit:
    Ha!
    Code:
    man bash | grep read
     
  8. #7 gropiuskalle, 06.01.2008
    Zuletzt bearbeitet: 06.01.2008
    gropiuskalle

    gropiuskalle terra incognita

    Dabei seit:
    01.07.2006
    Beiträge:
    4.857
    Zustimmungen:
    0
    Ort:
    Berlin
    Kann es sein, dass Dir das Paket 'bash-doc' fehlt? Wie kommst Du an die Optionen Standard-Befehlen wie 'cd' oder 'test'?

    Hu? Da kommt wiederum bei mir nur Müll raus:

    Code:
    kalle@hoppers:~> man bash | grep read
    Formatiere bash(1) neu, bitte warten...
           commands read from the standard input or from a file.  Bash also incor-
           -c string If  the  -c  option  is  present, then commands are read from
                     option processing, then commands are read from  the  standard
           -v        Print shell input lines as they are read.
                  Do  not  use the GNU readline library to read command lines when
                  Do not read either the system-wide startup file /etc/profile  or
                  ~/.bash_login, or ~/.profile.   By  default,  bash  reads  these
           --norc Do  not  read  and  execute  the  personal  initialization  file
           ters are set to the remaining arguments.  Bash reads and executes  com-
           If  any  of  the files exist but cannot be read, bash reports an error.
           active shell with the --login option, it first reads and executes  com-
           mands  from  the file /etc/profile, if that file exists.  After reading
           in  that order, and reads and executes commands from the first on
    [...]
    'man bash' ist außerdem nicht das gleiche wie 'man bashbuiltins'

    Edit again:

    Code:
    read  [-ers]  [-u  fd]  [-t timeout] [-a aname] [-p prompt] [-n
           nchars] [-d delim] [name ...]
                  One  line  is  read from the standard input, or from the
                  file descriptor fd supplied as an  argument  to  the  -u
                  option,  and  the  first  word  is assigned to the first
                  name, the second word to the second  name,  and  so  on,
                  with  leftover  words  and  their intervening separators
                  assigned to the last name.  If  there  are  fewer  words
                  read  from  the  input  stream than names, the remaining
                  names are assigned empty values.  The characters in  IFS
                  are  used  to  split the line into words.  The backslash
                  character (\) may be used to remove any special  meaning
                  for  the  next character read and for line continuation.
                  Options, if supplied, have the following meanings:
                  -a aname
                         The words are assigned to sequential  indices  of
                         the  array  variable aname, starting at 0.  aname
                         is unset before  any  new  values  are  assigned.
                         Other name arguments are ignored.
                  -d delim
                         The first character of delim is used to terminate
                         the input line, rather than newline.
                  -e     If the standard input is coming from a  terminal,
                         readline  (see  READLINE above) is used to obtain
                         the line.
                  -n nchars
                         read  returns  after  reading  nchars  characters
                         rather than waiting for a complete line of input.
                  -p prompt
                         Display  prompt  on  standard  error,  without  a
                         trailing  newline,  before attempting to read any
                         input.  The prompt is displayed only if input  is
                         coming from a terminal.
                  -r     Backslash  does  not  act as an escape character.
                         The backslash is considered to  be  part  of  the
                         line.   In  particular,  a backslash-newline pair
                         may not be used as a line continuation.
                  -s     Silent mode.  If input is coming from a terminal,
                         characters are not echoed.
                  -t timeout
                         Cause  read  to  time out and return failure if a
                         complete line of input is not read within timeout
                         seconds.   This  option  has no effect if read is
                         not reading input from the terminal or a pipe.
                  -u fd  Read input from file descriptor fd.
    
    If no names are supplied, the line read is  assigned  to
                  the  variable  REPLY.   The  return code is zero, unless
                  end-of-file  is  encountered,  read  times  out,  or  an
                  invalid  file  descriptor is supplied as the argument to
                  -u.
     
  9. #8 Wolfgang, 07.01.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    read ist in der man bash.
    Ein grep auf read bringt den berümten Feuerwehrschlauch für den Verdurstenden, weil read in vielen Sätzen vorkommt.

    Kannst es ja mal so versuchen:
    Code:
    $ man bash|grep -A50 '^[[:space:]]*read[[:space:]]*\['
    
    ;)
    Gruß Wolfgang
     
  10. P17

    P17 Schandensbegrenzer

    Dabei seit:
    06.12.2007
    Beiträge:
    196
    Zustimmungen:
    0
    Ort:
    Germany
    Vielen Dank!
    Code:
    man bash|grep -A50 '^[[:space:]]*read[[:space:]]*\[' > manpages/read.txt
    :D
     
  11. Gast1

    Gast1 Guest

    Es soll auch Distributionen geben, wo das ohne Gefummel geht:

    Code:
    man read
    Formatiere bashbuiltins(1) neu, bitte warten...
    Tatsächlich :devil:
     
  12. #11 supersucker, 07.01.2008
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Und folgendes sollte auf allen Distributionen für alle bash-builtins funktionieren:

    Code:
    help read
    ergibt:

    Siehe

    ......:devil:
     
  13. Gast1

    Gast1 Guest

    Very nice.

    Wobei ich mir immer noch nicht vorstellen kann, wieso das unter Debian mit dem automatischen Öffnen der passenden man-Page über "man read" nicht funktionieren soll.

    Greetz,

    RM
     
  14. #13 dosenfleisch, 07.01.2008
    dosenfleisch

    dosenfleisch Foren As

    Dabei seit:
    29.03.2007
    Beiträge:
    75
    Zustimmungen:
    0
    @tomuschat

    danke dir.
    inzwischen mache ich es so, daß ich vor der passwortabfrage ein zusätzliches script starte, daß den kdialog nach einiger zeit schließt.
    also im prinzip so wie bei dir.
     
  15. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. #14 TypeRyder, 07.01.2008
    TypeRyder

    TypeRyder Unknown

    Dabei seit:
    23.07.2007
    Beiträge:
    59
    Zustimmungen:
    0
    Ort:
    Süddeutschland (Exil)
    @Rain_Maker: Du meinst so:
    Code:
    man read
    Formatiere read(2) neu, bitte warten...
    Hm, dann ist mein Debian wohl kaputt, wenn das bei mir geht? :D
     
  17. Gast1

    Gast1 Guest

    Hätte mich jetzt auch schwer gewundert.

    *HRHRHR*

    Und als Würgaround, um sein Debian genau so "kaputt" zu bekommen, muß man wahrscheinlich

    Code:
    apt-get remove --purge PEBKAC
    ausführen (optional dürfte es auch mit aptitude klappen *g*)

    Greetz,

    RM
     
Thema:

passwortabfrage mit timeout

Die Seite wird geladen...

passwortabfrage mit timeout - Ähnliche Themen

  1. nach ssh-login auswerte ob passwortabfrage komt oder nicht

    nach ssh-login auswerte ob passwortabfrage komt oder nicht: Hallo Leute, ich möchte folgendes mittels eines Scripts folgendes automatisieren. In meinem Shell-Script befindet sich ein Array mit...
  2. Knoppix auf Festplatte unsicher? Passwortabfrage

    Knoppix auf Festplatte unsicher? Passwortabfrage: Hallo allerseits Nachdem mich tgruene freundlicherweise ins Forum gelotst (bekommen) hat, möchte ich o.g. Thema noch einmal auf aktuellem Stand...
  3. LUKS Verschlüsselung ein paar Fragen - entschlüsseln beim Boot ohne Passwortabfrage

    LUKS Verschlüsselung ein paar Fragen - entschlüsseln beim Boot ohne Passwortabfrage: Ich habe mich schon hier und da belesen, sehe aber noch nicht so richtig durch. Mein System ist ein aktuelles CentOS 6.2 mit 3 mdraid...
  4. Suse 11.4 - Tastatur bei Passwortabfrage für Neustart gesperrt

    Suse 11.4 - Tastatur bei Passwortabfrage für Neustart gesperrt: Hallo zusammen, vor paar Wochen haben ich unter openSuse 11.4 (KDE 4.6.0) einen neuen Nagios-Server eingerichtet. Soweit funktioniert auch alles,...
  5. akonadi passwortabfrage nervt

    akonadi passwortabfrage nervt: Hallo, ich habe kde-4.7.1 kmail und Akonadi, ohne kwallet. Bei jedem LogIn will Akonadi mein Passwort für kmail wissen (obwohl ich bei der...