Date création : 30-03-2008 14:07:23
 Vous êtes dans : GNU/Linux Astuces / Pages man [Section5 - Formats de fichiers]
UTMP
Index
- NOM
- SYNOPSIS
- DESCRIPTION
- FICHIERS
- CONFORMITÉ
- RESTRICTIONS
- BOGUES
- VOIR AUSSI
- TRADUCTION
NOM
utmp, wtmp - Enregistrements de connexion.
SYNOPSIS
#include <utmp.h>
DESCRIPTION
Le fichier utmp permet de voir qui est connecté sur le système. Tous les
programmes n'utilisant pas les enregistrement utmp, il se peut qu'il y ait
plus d'utilisateurs que ceux affichés.
Attention : utmp ne doit pas être accessible en écriture car de
nombreux programmes systèmes dépendent (malheureusement) de son
intégrité. En laissant utmp accessible en écriture pour les utilisateurs,
vous prenez le risque d'avoir de mauvais fichiers de journalisation, et des
modifications de fichiers système.
Le fichier est une suite d'enregistrements avec la structure suivante
(remarquez que les détails d'implémentation dépendent d'une version à
l'autre de la bibliothèque C) :
#define UT_UNKNOWN 0
#define RUN_LVL 1
#define BOOT_TIME 2
#define NEW_TIME 3
#define OLD_TIME 4
#define INIT_PROCESS 5
#define LOGIN_PROCESS 6
#define USER_PROCESS 7
#define DEAD_PROCESS 8
#define ACCOUNTING 9
#define UT_LINESIZE 12
#define UT_NAMESIZE 32
#define UT_HOSTSIZE 256
struct exit_status {
short int e_termination; /* code de fin de processus */
short int e_exit; /* code de sortie de processus */
};
struct utmp {
short ut_type; /* type de d'identification */
pid_t ut_pid; /* PID du processus d'identification */
char ut_line[UT_LINESIZE]; /* nom de périphérique du tty - « /dev/ » */
char ut_id[4]; /* init id or abbrev. ttyname */
char ut_user[UT_NAMESIZE]; /* nom d'utilisateur */
char ut_host[UT_HOSTSIZE]; /* nom d'hôte pour les connexions distantes */
struct exit_status ut_exit; /* code d'état de sortie d'un processus
marqué comme étant un DEAD_PROCESS (« processus mort ») */
/* Les champs ut_session et ut_tv doivent être de la même taille
lorsqu'ils sont compilés en 32 et en 64 bit. Ceci permet aux fichiers
de données et à la mémoire partagée d'être partagés entre des applications
32 et 64 bit */
#if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32
int32_t ut_session; /* Identifiant de session, utilisé pour le fenêtrage */
struct {
int32_t tv_sec; /* Secondes */
int32_t tv_usec; /* Microsecondes */
} ut_tv; /* Heure à laquelle l'entrée a été effectuée */
#else
long int ut_session; /* Identifiant de session, utilisé pour le fenêtrage */
struct timeval ut_tv; /* Heure à laquelle l'entrée a été effectuée */
#endif
int32_t ut_addr_v6[4]; /* adresse IP de l'hôte distant */
char __unused[20]; /* Réservé pour une utilisation ultérieure */
};
/* Bidouille pour compatibilité ascendante */
#define ut_name ut_user
#ifndef _NO_UT_TIME
#define ut_time ut_tv.tv_sec
#endif
#define ut_xtime ut_tv.tv_sec
#define ut_addr ut_addr_v6[0]
Cette structure donne le nom du fichier spécial associé au terminal de
l'utilisateur, le nom d'utilisateur, l'heure de connexion sous la forme
time(2). Les chaînes de caractères se terminent par « |