getpass(3) | Library Functions Manual | getpass(3) |
getpass - запрашивает пароль
Standard C library (libc, -lc)
#include <unistd.h>
[[deprecated]] char *getpass(const char *prompt);
getpass():
Since glibc 2.2.2: _XOPEN_SOURCE && ! (_POSIX_C_SOURCE >= 200112L) || /* glibc >= 2.19: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _BSD_SOURCE Before glibc 2.2.2: none
This function is obsolete. Do not use it. See NOTES. If you want to read input without terminal echoing enabled, see the description of the ECHO flag in termios(3).
Функция getpass() открывает /dev/tty (управляющий терминал процесса), выводит строку prompt, выключает показ выводимых символов, читает одну строку («пароль»), восстанавливает состояние терминала и закрывает /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.
/dev/tty
Описание терминов данного раздела смотрите в attributes(7).
Интерфейс | Атрибут | Значение |
getpass() | Безвредность в нитях | MT-Unsafe term |
Есть в SUSv2, но помечена как УСТАРЕВШАЯ. Удалена из POSIX.1-2001.
You should use instead readpassphrase(3bsd), provided by libbsd.
В реализации библиотеки GNU C, если файл /dev/tty не может быть открыт, то строка приглашения выводится в поток ошибок stderr, а пароль читается из стандартного потока ввода stdin. Ограничения на длину пароля нет и строку можно редактировать.
Согласно SUSv2 значение PASS_MAX должно быть определено в <limits.h>, если оно меньше 8, и в любом случае может быть получено с помощью sysconf(_SC_PASS_MAX). Однако, из стандарта POSIX.2 константы PASS_MAX, _SC_PASS_MAX и функция getpass() убраны. В glibc учитывается _SC_PASS_MAX и возвращается BUFSIZ (например, 8192).
Вызывающий процесс должен как можно скорее обнулить пароль во избежание возможности просмотра незашифрованного пароля в адресном пространстве процесса.
crypt(3)
Русский перевод этой страницы руководства был сделан Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, Vladislav <ivladislavefimov@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>
Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.
Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.
5 февраля 2023 г. | Linux man-pages 6.03 |