GETPASS(3) Podręcznik programisty Linuksa GETPASS(3)

getpass - wczytanie hasła

#include <unistd.h>
char *getpass(const char *prompt);
Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros(7)):

getpass():

Since glibc 2.2.2:
    _XOPEN_SOURCE && ! (_POSIX_C_SOURCE >= 200112L)
        || /* Glibc since 2.19: */ _DEFAULT_SOURCE
        || /* Glibc <= 2.19: */ _BSD_SOURCE
Before glibc 2.2.2:
    none

Funkcja ta jest przestarzała. Nie należy jej używać. Informacje o tym, jak odczytać dane z terminala bez ich wyświetlania na nim można znaleźć w opisie znacznika ECHO w podręczniku termios(3).

Funkcja getpass() otwiera /dev/tty (terminal sterujący procesu), wyprowadza napis prompt, wyłącza echo, odczytuje jedną linię ("hasło"), odtwarza stan terminala i zamyka /dev/tty.

The function getpass() returns a pointer to a static buffer containing (the first PASS_MAX bytes of) the password without the trailing newline, terminated by a null byte ('\0'). This buffer may be overwritten by a following call. On error, the terminal state is restored, errno is set to indicate the error, and NULL is returned.

Funkcja może zakończyć się niepomyślnie, gdy
ENXIO
Proces nie ma terminala sterującego.

/dev/tty

Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).
Interfejs Atrybut Wartość
getpass() Bezpieczeństwo wątkowe MT-Unsafe term

Obecna w SUSv2, ale uważana za przestarzałe. Usunięta z POSIX.1-2001.

W implementacji biblioteki GNU C jeśli nie można otworzyć /dev/tty, to tekst zachęty jest wypisywany na stderr, a hasło jest odczytywane z stdin. Nie ma natomiast ograniczenia na długość hasła. Nie jest wyłączona edycja linii.

Zgodnie z SUSv2 jeśli wartość PASS_MAX jest mniejsza niż 8, to musi być zdefiniowana w <limits.h>, a w każdym przypadku można ją otrzymać za pomocą sysconf(_SC_PASS_MAX). Jednakże, POSIX.2 odchodzi od stałych PASS_MAX i _SC_PASS_MAX oraz od funkcji getpass(). Wersja glibc akceptuje _SC_PASS_MAX i zwraca BUFSIZ (np. 8192).

Proces wywołujący funkcję powinien wyzerować hasło natychmiast, gdy tylko będzie to możliwe, aby uniknąć pozostawiania niezaszyfrowanego hasła w przestrzeni adresowej procesu.

crypt(3)

Angielska wersja tej strony pochodzi z wydania 5.11 projektu Linux man-pages. Opis projektu, informacje dotyczące zgłaszania błędów oraz najnowszą wersję oryginału można znaleźć pod adresem https://www.kernel.org/doc/man-pages/.

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl> i Robert Luberda <robert@debian.org>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres manpages-pl-list@lists.sourceforge.net.

22 marca 2021 r. Linux