getpass - ermittelt ein Passwort
Standard-C-Bibliothek (
libc,
-lc)
#include <unistd.h>
[[veraltet]] char *getpass(const char *prompt);
getpass():
Seit Glibc 2.2.2:
_XOPEN_SOURCE && ! (_POSIX_C_SOURCE >= 200112L)
|| /* Glibc >= 2.19: */ _DEFAULT_SOURCE
|| /* Glibc <= 2.19: */ _BSD_SOURCE
Vor glibc 2.2.2:
none
Diese Funktion ist veraltet, bitte verwenden Sie sie nicht. Siehe ANMERKUNGEN.
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.
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 Zeilenumbruchzeichen, jedoch mit einem
abschließenden Nullbyte (»\0«), enthält. Dieser
Puffer kann von einem nachfolgenden Aufruf überschrieben werden. Im
Fehlerfall wird der Status des Terminals wiederhergestellt,
errno
gesetzt, um den Fehler anzuzeigen, und NULL zurückgegeben.
- ENXIO
- der Prozess kein steuerndes Terminal hat.
/dev/tty
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 |
In SUSv2 vorhanden, aber als VERALTET gekennzeichnet. In POSIX.1-2001 entfernt.
Sie sollten stattdessen
readpassphrase(3bsd) verwenden, welches durch
libbsd bereitgestellt wird.
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).
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.
crypt(3)
Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard
Schauer <
[email protected]> und Mario Blättermann
<
[email protected]> 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 die
Mailingliste
der Übersetzer