GETLOGIN(3) Manuel du programmeur Linux GETLOGIN(3)
NOM
getlogin, cuserid - Obtenir le nom de l'utilisateur.
SYNOPSIS
#include <unistd.h>
char *getlogin (void);
#include <stdio.h>
char *cuserid (char *string);
DESCRIPTION
La fonction getlogin renvoie un pointeur sur une chaîne de
caractères contenant le nom de l'utilisateur connecté sur
le terminal contrôlant le processus, ou un pointeur NULL
si cette information n'est pas disponible. La chaîne est
allouée de manière statique et peut donc être ecrasée lors
des appels ultérieurs à getlogin ou à cuserid.
La fonction cuserid renvoie un pointeur sur une chaîne de
caractères contenant le nom de l'utilisateur associé à
l'UID effectif du processus. Si string n'est pas un poin
teur NULL, ce doit être une table contenant au moins
L_cuserid caractères. La chaîne sera alors renvoyée dans
cette table. Sinon (si string vaut NULL), un pointeur sur
une chaîne allouée statiquement sera renvoyé. Cette chaîne
peut etre écrasée par des appels ultérieurs à cuserid ou à
getlogin.
La constante symbolique L_cuserid est un entier déclaré
dans stdio.h, indiquant la longueur nécessaire pour
stocker un nom d'utilisateur.
Ces fonctions permettent d'identifier correctement l'util
isateur qui exécute le programme (cuserid) ou l'utilisa
teur connecté pour la session (getlogin). (Ces deux
éléments peuvent différer si le bit Set-UID du programme
est validé).
La plupart du temps, il est plus utile d'utiliser la vari
able d'environnement LOGNAME pour déterminer l'utilisa
teur. Ceci est plus flexible car il est justement possible
de modifier LOGNAME arbitrairement.
ERREURS
ENOMEM Pas assez de mémoire pour allouer la structure
passwd nécessaire.
FICHIERS
/etc/passwd Base de données des mots de passe.
/etc/utmp (ou /var/adm/utmp, ou n'importe quel endroit ou
se trouve utmp - Le chemin d'accès dépend de la version de
libc).
Linux 1.2.13 26 Octobre 1996 1
GETLOGIN(3) Manuel du programmeur Linux GETLOGIN(3)
CONFORMITÉ
POSIX.1. System V dispose d'une fonction cuserid qui
utilise l'UID réel plutôt que l'UID effectif. La fonction
cuserid a été incorporée dans la version POSIX de 1988,
mais supprimée de la version de 1990.
BUGS
Malheureusement, il est souvent assez facile de tromper
getlogin(). Parfois il ne fonctionne pas du tout car cer
tains programmes n'utilisent pas le fichier utmp correcte
ment. Souvent, il ne retourne que les 8 premiers car
actères du nom. L'utilisateur connecté sur le terminal de
contrôle d'un programme n'est pas nécessairement celui qui
a lancé le programme.
Personne ne sait précisement ce que fait cuserid().
Evitez-le dans des programmes portables. Evitez-le de
toute manière. Utilisez getpwuid(geteuid()) à la place si
vous en avez besoin. N'UTILISEZ PAS cuserid().
VOIR AUSSI
geteuid(2), getuid(2)
TRADUCTION
Christophe Blaess, 1997.
Linux 1.2.13 26 Octobre 1996 2