sourCEntral - mobile manpages

pdf

GETPASS

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)

Before 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

ATTRIBUTES

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

Diese Seite ist Teil der Veröffentlichung 3.52 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 DOT E DOT Schauer AT gmx DOT 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 AT lists DOT debian DOT org>.

pdf