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. Verwenden Sie sie nicht.
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
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¶
Diese Seite ist Teil der Veröffentlichung 3.42 des Projekts Linux-
man-pages. Eine Beschreibung des Projekts und Informationen, wie Fehler
gemeldet werden können, finden sich unter
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>.