NOM
getpass - Saisie d’un mot de passe (password).
SYNOPSIS
#include <unistd.h>
char *getpass( const char *prompt);
Cette fonction est obsolète, ne l’utilisez pas.
La fonction getpass() ouvre /dev/tty (le terminal de contrôle du
processus) affiche le message d’accueil prompt, éteint l’écho local,
lit une ligne (le mot de passe), puis restaure l’état de /dev/tty et le
referme.
VALEUR RENVOYÉE
La fonction getpass() renvoie un pointeur sur une chaîne de caractères
allouée statiquement contenant les PASS_MAX premiers caractères du mot
de passe sans le retour chariot final, terminé par un caractère nul
(« \0 »). Ce tampon peut être écrasé par un autre appel. En cas
d’erreur, l’état du terminal est restauré, errno est rempli, et la
fonction renvoie NULL.
ERREURS
La fonction peut échouer dans les cas suivants :
ENXIO Le processus n’a pas de terminal de contrôle.
FICHIERS
/dev/tty
CONFORMITÉ
Présent dans SUSv2, mais marquée « LEGACY ». Supprimé de POSIX.1-2001.
NOTES
Dans les versions libc4 et libc5, le message n’est pas affiché sur
/dev/tty mais sur stderr. De plus, si /dev/tty ne peut être ouvert, le
mot de passe est lu depuis stdin. Le tampon statique a une longueur de
128 octets, aussi seulement 127 caractères du mot de passe sont
renvoyés. Durant la lecture, les signaux (SIGINT, SIGQUIT, SIGSTOP,
SIGTSTOP) sont désactivés et les caractères de contrôle correspondant
(en général Ctrl-C, Ctrl-\, Ctrl-Z et Ctrl-Y) sont transmis comme part
intégrante du mot de passe. Depuis la libc 5.4.19, l’édition de ligne
est également désactivée, ainsi les retours en arrières, etc., seront
présents dans le mot de passe.
Pour la glibc2, si /dev/tty ne peut pas être ouvert, le message est
envoyé sur stderr et le mot de passe lu sur stdin. Il n’y a pas de
limite à la longueur du mot de passe. L’édition de ligne n’est pas
désactivée.
D’après SUSv2, la valeur de PASS_MAX doit être définie dans <limits.h>
au cas où elle est inférieure à 8, et doit toujours être accessible
avec sysconf(_SC_PASS_MAX). Quoiqu’il en soit, POSIX.2 retire les
constantes PASS_MAX et _SC_PASS_MAX, ainsi que la fonction getpass().
Les bibliothèques libc4 et libc5 n’ont jamais géré PASS_MAX ou
_SC_PASS_MAX. La glibc2 accepte _SC_PASS_MAX et renvoie BUFSIZ (par
exemple, 8192).
BOGUES
Le processus appelant doit effacer le mot de passe saisi aussi vite que
possible, afin d’éviter d’en conserver une copie en texte clair dans
son espace d’adressage.
VOIR AUSSI
crypt(3)
COLOPHON
Cette page fait partie de la publication 3.23 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent être trouvées à l’adresse
http://www.kernel.org/doc/man-pages/.
TRADUCTION
Cette page de manuel a été traduite et mise à jour par Christophe
Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
disposition sur http://manpagesfr.free.fr/.
Les mises à jour et corrections de la version présente dans Debian sont
directement gérées par Florentin Duneau <fduneau@gmail.com> et l’équipe
francophone de traduction de Debian.
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document
en utilisant la commande « man -L C <section> <page_de_man> ».