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:
        _XOPEN_SOURCE && ! (_POSIX_C_SOURCE >= 200112L)
            || /* Glibc seit 2.19: */ _DEFAULT_SOURCE
            || /* Glibc-Versionen <= 2.19: */ _BSD_SOURCE
    Vor Glibc 2.2.2:
        none

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
Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.
Schnittstelle | Attribut | Wert
getpass() | Multithread-Fähigkeit | MT-Unsafe term

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

ANMERKUNGEN

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
Diese Seite ist Teil der Veröffentlichung 4.15 des Projekts Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter https://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>.