File: utmp.5

package info (click to toggle)
manpages-fr 0.9.3-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 7,052 kB
  • ctags: 4
  • sloc: makefile: 58; sh: 8
file content (214 lines) | stat: -rw-r--r-- 9,054 bytes parent folder | download
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.