.\" -*- coding: UTF-8 -*- .\" Copyright (c) 1993 Michael Haardt (michael@cantor.informatik.rwth-aachen.de), .\" Fri Apr 2 11:32:09 MET DST 1993 .\" .\" SPDX-License-Identifier: GPL-2.0-or-later .\" .\" Modified 1993-07-25 by Rik Faith (faith@cs.unc.edu) .\" Modified 1995-02-26 by Michael Haardt .\" Modified 1996-07-20 by Michael Haardt .\" Modified 1997-07-02 by Nicolás Lichtmaier .\" Modified 2004-10-31 by aeb, following Gwenole Beauchesne .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH utmp 5 "3 mai 2023" "Pages du manuel de Linux 6.05.01" .SH NOM utmp, wtmp \- Enregistrements de connexion .SH SYNOPSIS .nf \fB#include \fP .fi .SH DESCRIPTION Le fichier \fIutmp\fP 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. .PP \fBAttention\fP\ : \fIutmp\fP ne doit pas être accessible en écriture par la classe d'utilisateurs «\ autres\ », car de nombreux programmes systèmes dépendent (malheureusement) de son intégrité. En laissant \fIutmp\fP accessible en écriture pour les utilisateurs n'étant ni le propriétaire ni dans le groupe propriétaire, vous prenez le risque d'avoir de mauvais fichiers de journalisation et des modifications de fichiers système. .PP Le fichier est une suite de structures \fIutmp\fP, déclarées comme ceci dans \fI\fP (notez qu'il ne s'agit que d'une des définitions existantes\ ; les détails dépendent de la version de la bibliothèque\ C)\ : .PP .in +4n .EX /* Valeurs pour le champ ut_type, ci\-dessous */ \& #define EMPTY 0 /* L'enregistrement ne contient pas d'information valable (connu auparavant comme UT_UNKNOWN sous Linux) */ #define RUN_LVL 1 /* Modification du niveau d'exécution système (consultez \fBinit\fP(8)) */ #define BOOT_TIME 2 /* Date de démarrage du système (en \fIut_tv\fP) */ #define NEW_TIME 3 /* Heure après le changement d'heure système (en \fIut_tv\fP) */ #define OLD_TIME 4 /* Heure avant le changement d'heure système (en \fIut_tv\fP) */ #define INIT_PROCESS 5 /* Processus lancé par \fBinit\fP(8) */ #define LOGIN_PROCESS 6 /* Processus leader de session pour la connexion de l'utilisateur */ #define USER_PROCESS 7 /* Processus normal */ #define DEAD_PROCESS 8 /* Processus terminé */ #define ACCOUNTING 9 /* Pas implémenté */ \& #define UT_LINESIZE 32 #define UT_NAMESIZE 32 #define UT_HOSTSIZE 256 \& struct exit_status { /* Type pour ut_exit ci\-dessous */ short int e_termination; /* code de fin de processus */ short int e_exit; /* code de sortie de processus */ }; \& struct utmp { short ut_type; /* Type d'enregistrement */ pid_t ut_pid; /* PID du processus */ char ut_line[UT_LINESIZE]; /* Nom du périphérique tty \- «\ /dev/\ » */ char ut_id[4]; /* Suffixe du nom de terminal, ou identifiant inittab(5)*/ char ut_user[UT_NAMESIZE]; /* Nom d'utilisateur */ char ut_host[UT_HOSTSIZE]; /* Nom d'hôte pour connexion distante, ou version du noyau pour les messages du niveau d'exécution (run\-level) */ struct exit_status ut_exit; /* Code de fin d'un processus déjà marqué DEAD_PROCESS\ ; pas utilisé par init(1) de Linux. */ /* Les champs ut_session et ut_tv fields doivent avoir la même taille lors de la compilation, 32 et 64 bits. Cela permet aux fichiers de données et à la mémoire partagée d'être partagés entre les applications 32 et 64 bits. */ #if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32 int32_t ut_session; /* ID de session (\fBgetsid\fP(2)), utilisé pour le fenêtrage */ struct { int32_t tv_sec; /* Secondes */ int32_t tv_usec; /* Microsecondes */ } ut_tv; /* Horodatage */ #else long int ut_session; /* ID de session */ struct timeval ut_tv; /* Horodatage */ #endif \& int32_t ut_addr_v6[4]; /* Adresse IP hôte distant\ ; les adresses IPv4 utilisent seulement ut_addr_v6[0] */ char __unused[20]; /* Réservé pour utilisation future */ }; \& /* 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] .EE .in .PP 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 \fBtime\fP(2). Les chaînes de caractères se terminent par un octet nul «\ \e0\ » si elles sont plus courtes que les longueurs définies dans la structure. .PP Le premier enregistrement créé est le traitement de \fBinittab\fP(5) par \fBinit\fP(1). Néanmoins, avant ça, \fBinit\fP(1) positionne le champ \fIut_type\fP à \fBDEAD_PROCESS\fP, et efface \fIut_user\fP, \fIut_host\fP et \fIut_time\fP (remplis avec des octets nuls) de tous les enregistrement dont l'\fIut_type\fP n'est ni \fBDEAD_PROCESS\fP ni \fBRUN_LVL\fP, et si aucun processus de PID \fIut_pid\fP n'existe. Si aucun enregistrement vide n'est trouvé avec le \fIut_id\fP correct, \fBinit\fP(1) en crée un nouveau. Il positionne \fIut_id\fP en s'aidant de l'inittab, \fIut_pid\fP et \fIut_time\fP avec les valeurs actuelles et \fIut_type\fP à \fBINIT_PROCESS\fP. .PP \fBmingetty\fP(8) (ou \fBagetty\fP(8)) récupère l'entrée correspondant à son PID, donne à \fIut_type\fP la valeur \fBLOGIN_PROCESS\fP, modifie \fIut_time\fP, définit \fIut_line\fP et attend l'établissement d'une connexion. Une fois qu'un utilisateur a été authentifié, \fBlogin\fP(1) donne à \fIut_type\fP la valeur \fBUSER_PROCESS\fP, modifie \fIut_time\fP et définit \fIut_host\fP et \fIut_addr\fP. Selon les utilitaires \fBmingetty\fP(8) (ou \fBagetty\fP(8)) et \fBlogin\fP(1) utilisés, les enregistrements sont parfois identifiés par \fIut_line\fP plutôt que \fIut_pid\fP, qui est préférable. .PP Quand \fBinit\fP(1) s'aperçoit qu'un processus est terminé, il identifie son enregistrement utmp grâce au champ \fIut_pid\fP, positionne \fIut_type\fP à \fBDEAD_PROCESS\fP et efface \fIut_user\fP, \fIut_host\fP et \fIut_time\fP avec des octets nuls. .PP \fBxterm\fP(1), et d'autres émulateurs de terminaux, créent directement un enregistrement \fBUSER_PROCESS\fP, engendrant \fIut_id\fP grâce à la chaîne qui suffixe le nom du terminal (les caractères qui suivent \fI/dev/\fP[pt]\fIty\fP). S'ils trouvent un \fBDEAD_PROCESS\fP correspondant à cet ID, ils le recycle, sinon ils en créent un nouveau. Si possible, ils marquent l'enregistrement comme étant \fBDEAD_PROCESS\fP lorsqu'ils se terminent et il faut tenir compte du fait qu'ils effacent également \fIut_line\fP, \fIut_time\fP, \fIut_user\fP et \fIut_host\fP. .PP \fBtelnetd\fP(8) construit un enregistrement \fBLOGIN_PROCESS\fP et laisse le reste du travail à \fBlogin\fP(1). Une fois que la session telnet est terminée, \fBtelnetd\fP(8) efface l'utmp de la manière décrite plus haut. .PP Le fichier \fIwtmp\fP enregistre les connexions et déconnexions. Son format est exactement le même que \fIutmp\fP excepté qu'un utilisateur nul indique une déconnexion sur le terminal associé. De plus, un nom de terminal «\ \fB\[ti]\fP\ » associé à un nom d'utilisateur «\ \fBshutdown\fP\ » ou «\ \fBreboot\fP\ » indique un arrêt ou un redémarrage du système. Une paire d'enregistrements avec les noms de terminaux «\ \fB|\fP/\fB}\fP\ » indique une modification de l'heure système avec \fBdate\fP(1). Le fichier \fIwtmp\fP est maintenu par \fBlogin\fP(1), \fBinit\fP(1) et quelques uns des \fBgetty\fP(8) (par exemple \fBmingetty\fP(8) ou \fBagetty\fP(8)). Aucun de ces programmes ne crée le fichier. Aussi, si on le supprime, les enregistrements de connexions sont arrêtés. .SH FICHIERS \fI/var/run/utmp\fP .br \fI/var/log/wtmp\fP .SH VERSIONS POSIX.1 ne spécifie pas de structure \fIutmp\fP, mais une appelée \fIutmpx\fP (comme élément de l'extension XSI), avec des spécifications pour les champs \fIut_type\fP, \fIut_pid\fP, \fIut_line\fP, \fIut_id\fP, \fIut_user\fP et \fIut_tv\fP. POSIX.1 ne spécifie pas les tailles des champs \fIut_line\fP et \fIut_user\fP. .PP Linux définit la structure \fIutmpx\fP comme étant la même que la structure \fIutmp\fP. .SH STANDARDS Linux. .SH HISTORIQUE Les enregistrements utmp de Linux ne se conforment ni à v7/BSD ni à System\ V. Ils sont en réalité un mélange des deux. .PP v7/BSD comporte moins de champs\ ; par exemple pas de \fIut_type\fP, ce qui conduit les programmes natifs de v7/BSD à afficher des entrées (par exemple) des entrées «\ mortes\ » ou d'identification («\ login\ »). De plus, il n'y a pas de fichier de configuration pour allouer les slots aux sessions. BSD le fait parce qu'il lui manque le champ \fIut_id\fP. .PP Sous Linux (comme sous System\ V), le champ \fIut_id\fP d'un enregistrement ne sera jamais modifié après son initialisation. L'effacement de \fIut_id\fP peut engendrer des conditions de concurrence conduisant à avoir des entrées utmp corrompues et, potentiellement, des trous de sécurité. Effacer les champs mentionnés ci\-dessus en les remplissant avec des zéros binaires n'est pas requis par la sémantique de System\ V, mais cela permet l'exécution de nombreux programmes qui s'appuient sur la sémantique de BSD et qui ne modifient pas utmp. Linux utilise les conventions BSD en ce qui concerne le contenu des lignes, tels que c'est précisé plus haut. .PP .\" mtk: What is the referrent of "them" in the following sentence? .\" System V only uses the type field to mark them and logs .\" informative messages such as \fB"new time"\fP in the line field. System\ V n'a pas de champ \fIut_host\fP ni \fIut_addr_v6\fP. .SH NOTES Contrairement à d'autres systèmes, sur lesquels l'effacement du fichier arrête la journalisation, le fichier utmp doit toujours exister sous Linux. Si vous désirez désactiver \fBwho\fP(1), laissez le fichier utmp en place, mais ne le laissez pas lisible par tout le monde. .PP Le format de ces fichiers dépend de la machine, et il est recommandé de ne les utiliser que sur la machine où ils ont été créés. .PP Notez que sur les plates\-formes \fIbiarch\fP, c'est\-à\-dire les systèmes qui utilisent à la fois des applications 32 et 64 bits (x86_64, ppc64, s390x, etc.), \fIut_tv\fP est de la même taille en mode 32 bits et en mode 64 bits. De même en ce qui concerne \fIut_session\fP et \fIut_time\fP s'ils existent. Ceci permet aux fichiers de données et à la mémoire partagée d'être partagés entre les applications 32 bits et 64 bits. Cela est fait en modifiant le type de \fIut_session\fP en \fIint32_t\fP, et celui de \fIut_tv\fP en une structure avec deux champs \fIint32_t\fP, \fItv_sec\fP et \fItv_usec\fP. Puisque la structure \fIut_tv\fP est différente de la structure \fItimeval\fP, au lieu de l'appel\ : .PP .in +4n .EX gettimeofday((struct timeval *) &ut.ut_tv, NULL); .EE .in .PP il est recommandé d'utiliser la méthode suivante pour définir ce champ .PP .in +4n .EX struct utmp ut; struct timeval tv; \& gettimeofday(&tv, NULL); ut.ut_tv.tv_sec = tv.tv_sec; ut.ut_tv.tv_usec = tv.tv_usec; .EE .in .\" .PP .\" Note that the \fIutmp\fP struct from libc5 has changed in libc6. .\" Because of this, .\" binaries using the old libc5 struct will corrupt .\" .IR /var/run/utmp " and/or " /var/log/wtmp . .\" .SH BUGS .\" This man page is based on the libc5 one, things may work differently now. .SH "VOIR AUSSI" \fBac\fP(1), \fBdate\fP(1), \fBinit\fP(1), \fBlast\fP(1), \fBlogin\fP(1), \fBlogname\fP(1), \fBlslogins\fP(1), \fBusers\fP(1), \fButmpdump\fP(1), \fBwho\fP(1), \fBgetutent\fP(3), \fBgetutmp\fP(3), \fBlogin\fP(3), \fBlogout\fP(3), \fBlogwtmp\fP(3), \fBupdwtmp\fP(3) .PP .SH TRADUCTION La traduction française de cette page de manuel a été créée par Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot , Jean-Baptiste Holcroft , Grégoire Scano et Jean-Pierre Giraud . .PP Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. .PP Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à .MT debian-l10n-french@lists.debian.org .ME .