1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214
|
.\" Copyright (c) 1993 Michael Haardt (michael@cantor.informatik.rwth-aachen.de), Fri Apr 2 11:32:09 MET DST 1993
.\"
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, write to the Free
.\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
.\" USA.
.\"
.\" Modified Sun Jul 25 10:44:50 1993 by Rik Faith (faith@cs.unc.edu)
.\" Modified Thu Feb 26 16:08:49 MET 1995 by Michael Haardt
.\" Traduction 18/10/1996 par Christophe Blaess (ccb@club-internet.fr)
.\" Mise a jour 18/05/1998 (LDP-man-pages-1.19)
.\"
.TH UTMP 5 "18 Mai 1998" Linux "Manuel de l'administrateur Linux"
.SH NOM
utmp, wtmp \- Enregistrements de connexion.
.SH SYNOPSIS
#include <utmp.h>
.SH DESCRIPTION
Le fichier
.B utmp
permet de voir qui est connect sur le systme. Tous les programmes n'utilisant
pas les enregistrement utmp, il se peut qu'il y ait plus d'utilisateurs que
ceux affichs.
.PP
\fBAttention\fP : \fButmp\fP ne doit pas tre accessible en criture car de
nombreux programmes systmes dpendent (malheureusement) de son intgrit.
En laissant \fButmp\fP accessible en criture pour les utilisateurs, vous prenez
le risque d'avoir de mauvais fichiers de journalisation, et d'obtenir des
modifications de fichiers systme.
.PP
Le fichier est une suite d'enregistrement avec la structure suivante (remarquez
que les dtails d'implmentation dpendendent d'une version l'autre
de la bibliothque C):
.RS
.nf
.sp
.ta 3i
#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 du processus */
short int e_exit; /* Valeur de fin du processus */
};
struct utmp {
short ut_type; /* type de login */
pid_t ut_pid; /* pid du processus */
char ut_line[UT_LINESIZE]; /* peripherique tty - "/dev/" */
char ut_id[4]; /* ID tty initial */
char ut_user[UT_NAMESIZE]; /* nom utilisateur */
char ut_host[UT_HOSTSIZE]; /* nom hote si login distant */
struct exit_status ut_exit; /* Code de fin d'un processus */
/* dj marqu DEAD_PROCESS. */
long ut_session; /* ID de session */
struct timeval ut_tv; /* Horodatage */
int32_t ut_addr_v6[4]; /* Adresse IP hote distant */
char pad[20]; /* Remplissage, rserv... */
};
/* 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]
.sp
.fi
.RE
Cette structure donne le nom du fichier spcial associ au terminal de
l'utilisateur, le nom d'utilisateur, l'heure de connexion sous la forme
.IR time (2).
Les chanes de caractres se terminent par \fB'\e0'\fP si elles sont plus
courtes que les longueurs dfinies dans la structure.
.PP
Le premier enregistrement cr est le traitement de \fIinittab\fP(5) par
\fIinit\fP(8).
Nanmoins, avant ca, \fIinit\fP(8)
positionne le champ \fBut_type\fP \fBDEAD_PROCESS\fP,
et efface \fBut_user\fP, \fBut_host\fP et \fBut_time\fP (remplis avec
des octets nul) de tous les enregistrement dont l'\fBut_type\fP
n'est ni \fBDEAD_PROCESS\fP ni \fBRUN_LVL\fP, et si aucun processus
de PID \fBut_pid\fP n'existe.
Si aucun enregistrement vide n'est trouv avec le \fBut_id\fP correct,
init en cre un nouveau. Il positionne \fBut_id\fP en s'aidant de
l'inittab, \fBut_pid\fP et \fBut_time\fP avec les valeurs actuelles et
\fBut_type\fP \fBINIT_PROCESS\fP.
.PP
\fIgetty\fP(8) rcupre l'entre corespondant son PID, modifie \fBut_type\fP
la valeur \fBLOGIN_PROCESS\fP, modifie \fBut_time\fP, positionne \fBut_line\fP
et attend une connexion.
Une fois qu'un utilisateur est authentifi, \fIlogin\fP(8) modifie
\fBut_type\fP \fBUSER_PROCESS\fP, modifie \fBut_time\fP
et positionne \fBut_host\fP et \fBut_addr\fP.
En fonction du \fIgetty\fP(8) et \fIlogin\fP(8) utiliss, les enregistrements
sont parfois identifis par \fBut_line\fP plutt que \fBut_pid\fP qui est
toutefois prfrable.
.PP
Quand \fIinit\fP(8) s'aperoit qu'un processus est termin, il identifie son
enregistrement utmp grce au champ \fBut_pid\fP, positionne \fBut_type\fP a
\fBDEAD_PROCESS\fP et efface \fBut_user\fP, \fBut_host\fP et \fBut_time\fP
avec des octets nuls.
.PP
\fIxterm\fP(1) (comme les autres mulateurs de terminaux) cre directement un
enregistrement \fBUSER_PROCESS\fP, engendrant \fBut_id\fP grce aux deux
dernires lettres de \fB/dev/ttyp\fP\fI%c\fP ou en utilisant \fBp\fP\fI%d\fP
pour \fB/dev/pts/\fP\fI%d\fP.
S'il trouve un \fBDEAD_PROCESS\fP pour cet ID, il le recycle, sinon il en cre
un nouveau. Si possible, il marque l'enregistrement avec \fBDEAD_PROCESS\fP
la sortie. Il est recommande qu'il efface galement \fBut_line\fP,
\fBut_time\fP, \fBut_user\fP et \fBut_host\fP.
.PP
\fIxdm\fP(8) ne doit pas crer d'enregistrement car il n'y a pas de
terminal associ. Le forcer en crer peut dclencher des problmes, tels
que l'impossibilit de faire fonctionner finger. Par contre \fIxdm\fP peut
trs bien crer des entres wtmp tout comme \fIftpd\fP(8).
.PP
\fItelnetd\fP(8) construit un enregistrement \fBLOGIN_PROCESS\fP
et laisse le reste du travail \fIlogin\fP(8).
Une fois que la session telnet est termine, \fItelnetd\fP(8)
efface l'utmp de la manire dcrite plus haut.
.PP
Le fichier \fBwtmp\fP enregistre les connexions et dconnexions. Son
format est exactement le mme que \fButmp\fP excepte qu'un utilisateur nul
indique une dconnexion sur le terminal associ.
De plus un nom de terminal \fB"~"\fP, associe un nom d'utilisateur
\fB"shutdown"\fP ou \fB"reboot"\fP indique un arrt ou un redmarrage
du systme. Une paire d'enregistrements avec les noms de terminaux
\fB"|"\fP / \fB"}"\fP indique une modification de l'heure systme.
Le fichier \fBwtmp\fP est maintenu par \fIlogin\fP(1), \fIinit\fP(1)
et quelques un des \fIgetty\fP(1).
Aucun de ces programmes ne cre le fichier, aussi si on le supprime, les
enregistrements de connexions sont arrts.
.SH FICHIERS
/var/run/utmp
.br
/var/run/wtmp
.SH "CONFORMIT"
Les enregistrements utmp de Linux ne se conforment ni v7/BSD ni SYSV.
Ils sont en ralite un mlange des deux.
v7/BSD dispose de moins de champs, par exemple pas de \fBut_type\fP,
ce qui conduit les programmes pour v7/BSD afficher des entres invalides
de login.
Sous Linux (comme sous SYS V), le champ \fBut_id\fP d'un enregistrement ne
sera jamais modifi aprs son initialisation. L'effacement de \fBut_id\fP
peut engendrer des conditions de concurrence menant l'endommagement
des enregistrements utmp.
SYSV n'utilise le champ \fBut_type\fP que pour noter et horodater des messages
informatifs comme par exemple \fB"new time"\fP.
\fBUT_UNKNOWN\fP semble tre une inovation de Linux.
SYSV n'a pas de champs \fBut_host\fP ni \fBut_addr_v6\fP.
Contrairement d'autres systmes, sur lesquels l'effacement du fichier
arrte la journalisation, le fichier utmp doit toujours exister sous
Linux. Si vous dsirez dsactiver \fIwho\fP(1) alors laissez le fichier
utmp en place, mais ne le laissez pas lisible par tout le monde.
.PP
Notez que l'implmentation de la structure utmp a chang entre les bibliothques
C libc5 et libc6. A cause de ceci, les fichiers xcutables utilisant l'ancien
format libc5 risquent d'endommager les fichiers
.IR /var/run/utmp " et/ou " /var/log/wtmp .
Les distributions Debian utilisent une version modifie de libc5 proposant le
nouveau format. Nanmoins, le problme persiste car wtmp est accd directement
dans la libc5.
.SH RESTRICTIONS
Le format de ces fichiers dpend de la machine, et il est recommand de
ne les utiliser que sur la machine o ils ont t crs.
.SH BOGUES
Cette page de manuel est base sur la libc5, et les choses fonctionnent
peut-tre diffrement prsent.
.SH "VOIR AUSSI"
.BR ac (1),
.BR date (1),
.BR last (1),
.BR login (1),
.BR who (1),
.BR getutent (3),
.BR updwtmp (3),
.BR init (8)
.SH TRADUCTION
Christophe Blaess, 1997.
|