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
Diese Funktion ist veraltet, bitte verwenden Sie sie nicht. Falls Sie die Terminal-Eingabe lesen wollen, ohne dass die Wiedergabe der eingegebenen Zeichen aktiviert ist, lesen Sie bitte die Beschreibung des ECHO-Schalters 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 (siehe pthreads(7))
Die Funktion getpass() ist nicht multithread-fähig.

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.

According to SUSv2, the value of PASS_MAX must be defined in <limits.h> in case it is smaller than 8, and can in any case be obtained using sysconf(_SC_PASS_MAX). However, POSIX.2 withdraws the constants PASS_MAX and _SC_PASS_MAX, and the function getpass(). Libc4 and libc5 have never supported PASS_MAX or _SC_PASS_MAX. Glibc2 accepts _SC_PASS_MAX and returns BUFSIZ (e.g., 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.70 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, 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> und Mario Blättermann <mario.blaettermann@gmail.com> 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>.