GETPASS(3)

BEZEICHNUNG
getpass - ermittelt ein Passwort

ÜBERSICHT
#include <unistd.h>

char *getpass( const char *prompt);

Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):

getpass():
    Seit Glibc 2.2.2:
        _BSD_SOURCE ||
            (_XOPEN_SOURCE >= 500 ||
                _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) &&
            !(_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600)
    Vor Glibc 2.2.2:
        keine

BESCHREIBUNG
This function is obsolete. Do not use it. If you want to read input without terminal echoing enabled, see the description of the ECHO flag in termios(3).

Die Funktion getpass() öffnet /dev/tty (das steuernde Terminal des Prozesses), zeigt die Zeichenkette prompt an, schaltet die Wiedergabe der eingebenen Zeichen auf dem Terminal ab, liest die Zeile (das »Passwort«), stellt den Status des Terminals wieder her und schließt /dev/tty wieder.

RÜCKGABEWERT
Die Funktion getpass() gibt einen Zeiger auf einen statischen Puffer zurück, der das Passwort (bzw. die ersten PASS_MAX Bytes davon) ohne das abschließende Newline-Zeichen, jedoch mit einem terminierenden Null-Byte, enthält. Dieser Puffer kann von einem nachfolgenden Aufruf überschrieben werden. Im Fehlerfall wird der Status des Terminals wiederhergestellt, errno entsprechend gesetzt und NULL zurückgegeben.

FEHLER
Die Funktion kann fehlschlagen, falls

ENXIO
    der Prozess kein steuerndes Terminal hat.

DATEIEN
/dev/tty

ATTRIBUTE

  Multithreading (see pthreads(7))
The getpass() function is not thread-safe.

KONFORM ZU
In SUSv2 vorhanden, aber als VERALTET gekennzeichnet. In POSIX.1-2001 entfernt.

ANMERKUNGEN
Bei Libc4 und Libc5 wird der Prompt nicht auf /dev/tty geschrieben, sondern auf stderr. Wenn außerdem /dev/tty nicht geöffnet werden kann, wird das Passwort von stdin gelesen. Der statische Puffer hat eine Länge von 128 Byte, so dass nur die ersten 127 Byte des Passworts zurückgegeben werden. Während das Passwort gelesen wird, wird die Erzeugung von Signalen (SIGINT, SIGQUIT, SIGSTOP, SIGTSTP) deaktiviert und die entsprechenden Zeichen (normalerweise Strg-C, Strg-\, strg-Z und Strg-Y) werden als Teil des Passworts übertragen. Ab Libc 5.4.19 ist außerdem kein Editieren der Zeile mehr möglich, so dass Backspace und ähnliche Zeichen ebenfalls als Teile des Passworts angesehen werden.

Bei Glibc2 wird der Prompt auf stderr geschrieben, falls /dev/tty nicht geöffnet werden kann und das Passwort wird von stdin gelesen. Es gibt keine Begrenzung der Länge des Passwortes. Das Editieren der Zeile ist nicht deaktiviert.

Gemäß SUSv2 muss der Wert von PASS_MAX in <limits.h> definiert sein, falls er kleiner als 8 ist, und kann auf jeden Fall mit sysconf(_SC_PASS_MAX) in Erfahrung gebracht werden. Allerdings verwirft POSIX.2 die Konstanten PASS_MAX und _SC_PASS_MAX sowie die Funktion getpass(). Libc4 und Libc5 haben niemals PASS_MAX oder _SC_PASS_MAX unterstützt. Glibc2 akzeptiert _SC_PASS_MAX und gibt BUFSIZ zurück (z.B. 8192).

FEHLER
Der aufrufende Prozess sollte das Passwort so schnell wie möglich auf Null setzen, um zu vermeiden, dass das Passwort weiter im Adressraum dieses Prozesses sichtbar ist.

SIEHE AUCH
crypt(3)

KOLOPHON
This page is part of release 3.54 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.