~ubuntu-branches/debian/sid/man-pages-it/sid

« back to all changes in this revision

Viewing changes to man5/utmp.5

  • Committer: Bazaar Package Importer
  • Author(s): Francesco Tapparo
  • Date: 2001-04-01 15:40:28 UTC
  • Revision ID: james.westby@ubuntu.com-20010401154028-z6m3zeb44vbw7yhp
Tags: upstream-0.3.0
Import upstream version 0.3.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
.\" Copyright (c) 1993 Michael Haardt (michael@cantor.informatik.rwth-aachen.de), Fri Apr  2 11:32:09 MET DST 1993
 
2
.\"
 
3
.\" This is free documentation; you can redistribute it and/or
 
4
.\" modify it under the terms of the GNU General Public License as
 
5
.\" published by the Free Software Foundation; either version 2 of
 
6
.\" the License, or (at your option) any later version.
 
7
.\"
 
8
.\" The GNU General Public License's references to "object code"
 
9
.\" and "executables" are to be interpreted as the output of any
 
10
.\" document formatting or typesetting system, including
 
11
.\" intermediate and printed output.
 
12
.\"
 
13
.\" This manual is distributed in the hope that it will be useful,
 
14
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
 
15
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
16
.\" GNU General Public License for more details.
 
17
.\"
 
18
.\" You should have received a copy of the GNU General Public
 
19
.\" License along with this manual; if not, write to the Free
 
20
.\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
 
21
.\" USA.
 
22
.\" 
 
23
.\" Modified Sun Jul 25 10:44:50 1993 by Rik Faith (faith@cs.unc.edu)
 
24
.\" Modified Thu Feb 26 16:08:49 MET 1995 by Michael Haardt
 
25
.\" Modified Sat Jul 20 14:39:03 MET DST 1996 by Michael Haardt
 
26
.\" Modified Wed Jul  2 20:20:53 ART 1997 by Nicol�s Lichtmaier <nick@debian.org>
 
27
.\"
 
28
.\" Traduzione in italiano di Giovanni Bortolozzo <borto@dei.unipd.it>
 
29
.\" Settembre 1996
 
30
.\" Aggiornamento a man-pages-1.15 di Alessandro Rubini (rubini@linux.it)
 
31
.\" Febbraio 1998
 
32
.\" Aggiornamento a man-pages-1.20 di Ottavio G. Rizzo (otto@mast.queensu.ca)
 
33
.\" Giugno 1998
 
34
.\"
 
35
.\" " for hilit19
 
36
.TH UTMP 5 "2 luglio 1997" "Linux" "Linux Programmer's Manual"
 
37
.SH NOME
 
38
utmp, wtmp \- registri dei login
 
39
.SH SINTASSI
 
40
#include <utmp.h>
 
41
.SH DESCRIZIONE
 
42
Il file
 
43
.B utmp
 
44
permette di scoprire informazioni su chi sta usando attualmente il
 
45
sistema. Ci possono essere pi� utenti che stanno usando il sistema
 
46
di quelli riportati, poich� non tutti i programmi usano
 
47
registrazioni utmp.
 
48
.PP
 
49
\fB Attenzione:\fP \fButmp\fP non deve essere scrivibile, in quanto
 
50
molti programmi di sistema dipendono (stupidamente) dalla sua
 
51
integrit�. Si rischia che vengano contraffatti i file di log del
 
52
sistema e che il sistema sia modificato se si lascia \fButmp\fP
 
53
scrivibile a qualsiasi utente.
 
54
.PP
 
55
Il file � una sequenza di voci con la seguente struttura dichiarata
 
56
nel file di include (si noti che questa � solo una delle numerose
 
57
definizioni in giro; i dettagli dipendono dalla versione di libc:
 
58
.RS
 
59
.nf
 
60
.sp
 
61
.ta 3i
 
62
#define UT_UNKNOWN      0
 
63
#define RUN_LVL         1
 
64
#define BOOT_TIME       2
 
65
#define NEW_TIME        3
 
66
#define OLD_TIME        4
 
67
#define INIT_PROCESS    5
 
68
#define LOGIN_PROCESS   6
 
69
#define USER_PROCESS    7
 
70
#define DEAD_PROCESS    8
 
71
#define ACCOUNTING     9
 
72
 
 
73
#define UT_LINESIZE     12
 
74
#define UT_NAMESIZE     32
 
75
#define UT_HOSTSIZE     256
 
76
 
 
77
struct exit_status {
 
78
  short int e_termination;     /* process termination status.  */
 
79
  short int e_exit;    /* process exit status.  */
 
80
};
 
81
 
 
82
struct utmp {
 
83
  short ut_type;        /* type of login */
 
84
  pid_t ut_pid;         /* pid of login process */
 
85
  char ut_line[UT_LINESIZE];    /* device name of tty \- "/dev/" */
 
86
  char ut_id[4];        /* init id or abbrev. ttyname */
 
87
  char ut_user[UT_NAMESIZE];    /* user name */
 
88
  char ut_host[UT_HOSTSIZE];    /* hostname for remote login */
 
89
  struct exit_status ut_exit;  /* The exit status of a process
 
90
          marked as DEAD_PROCESS. */
 
91
  long ut_session;     /* session ID, used for windowing*/
 
92
  struct timeval ut_tv;        /* time entry was made.  */
 
93
  int32_t ut_addr_v6[4];       /* IP address of remote host.  */
 
94
  char pad[20];        /* Reserved for future use.  */
 
95
};
 
96
 
 
97
/* Per compatibilit� con le versioni precedenti */
 
98
#define ut_name ut_user
 
99
#ifndef _NO_UT_TIME
 
100
#define ut_time ut_tv.tv_sec
 
101
#endif
 
102
#define ut_xtime ut_tv.tv_sec
 
103
#define ut_addr ut_addr_v6[0]
 
104
.sp
 
105
.fi
 
106
.RE
 
107
Questa struttura da il nome del file speciale associato con il
 
108
terminale utente, il nome di login dell'utente, e l'ora di login
 
109
nel formato di 
 
110
.IR time (2).
 
111
I campi stringa sono terminati con \fB'\e0'\fP se sono pi� corti della
 
112
dimensione del campo.
 
113
.PP
 
114
Le prime voci del file sono il risultato di \fIinit\fP(8) quando
 
115
esegue \fIinittab\fP(5).  Prima che una voce sia eseguita, per�,
 
116
\fIinit\fP(8) pulisce il file utmp assegnando il valore
 
117
\fBDEAD_PROCESS\fP a \fBut_type\fP, pulendo \fBut_user\fP,
 
118
\fBut_host\fP e \fBut_time\fP con byte nulli per ogni registrazione
 
119
il cui \fBut_type\fP non sia \fBDEAD_PROCESS\fP o \fBRUN_LVL\fP, e
 
120
quelle per cui non esistono processi con PID \fBut_pid\fP.
 
121
Se non si trovano registrazioni vuoti con la
 
122
\fBut_id\fP necessaria, init ne crea una nuova. Poi assegna
 
123
\fBut_id\fP dal file inittab, assegna i valori correnti a \fBut_pid\fP e \fBut_time\fP e assegna \fBINIT_PROCESS\fP a  \fBut_type\fP.
 
124
.PP
 
125
Il processo \fIgetty\fP(8) ricerca le voci tramite il PID, cambia
 
126
\fBut_type\fP perch� contenga \fBLOGIN_PROCESS\fP, aggiorna
 
127
\fBut_time\fP, assegna \fBut_line\fP e aspetta che venga stabilita una
 
128
connessione. Il processo \fIlogin\fP(8) modifica il file dopo
 
129
aver autenticato un utente: cambia \fBut_type\fP perch� valga
 
130
\fBUSER_PROCESS\fP, aggiorna
 
131
\fBut_time\fP e assegna valori a \fBut_host\fP e \fBut_addr\fP.
 
132
In base al comportamento di \fIgetty\fP(8) e \fIlogin\fP(8),
 
133
le registrazioni possono essere indirizzate da
 
134
\fBut_line\fP invece del metodo preferibile, \fBut_pid\fP.
 
135
.PP
 
136
Quando \fIinit\fP(8) scopre che un processo ha terminato,
 
137
ricerca la sua voce utmp tramite
 
138
\fBut_pid\fP, assegna il valore \fBDEAD_PROCESS\fP  a \fBut_type\fP
 
139
e pulisce \fBut_user\fP, \fBut_host\fP e \fBut_time\fP, assegnandogli
 
140
dei byte nulli.
 
141
.PP
 
142
\fIxterm\fP(1) e altri emulatori di terminale creano direttamente una
 
143
registrazione \fBUSER_PROCESS\fP e generano il campo \fBut_id\fP
 
144
usando le ultime due lettere di \fB/dev/ttyp\fP\fI%c\fP, oppure usando
 
145
\fBp\fP\fI%d\fP per periferiche \fB/dev/pts/\fP\fI%d\fP. Se trovano
 
146
una registrazione \fBDEAD_PROCESS\fP per l'identificativo scelto la
 
147
riciclano, altrimenti creano una nuova registrazione.  Se possono ,
 
148
questi programmi marcano la voce come \fBDEAD_PROCESS\fP quando
 
149
terminano, � consigliabile anche che azzerino \fBut_line\fP,
 
150
\fBut_time\fP, \fBut_user\fP e \fBut_host\fP.
 
151
.PP
 
152
\fIxdm\fP(8) non dovrebbe creare registrazioni utmp, perch� non
 
153
ci sono terminali assegnati al programma. Permettergli di creare
 
154
una registrazione risulterebbe in alcuno problemi, come:
 
155
``finger: can not stat /dev/machine.dom''.  Il programma, per�, dovrebbe
 
156
creare voci wtmp, proprio come fa \fIftpd\fP(8).
 
157
.PP
 
158
Il programma \fItelnetd\fP(8) predispone una voce \fBLOGIN_PROCESS\fP
 
159
e lascia il resto del lavoro a \fIlogin\fP(8) come al solito.  Dopo la
 
160
fine della sessione telnet, \fItelnetd\fP(8) pulisce utmp nel modo
 
161
descritto.
 
162
.PP
 
163
Il file \fBwtmp\fP registra tutti i login e i logout. Il suo formato �
 
164
esattamente come quello di \fButmp\fP con l'eccezione che un nome utente
 
165
nullo indica il logout nel terminale associato. Inoltre, il nome del
 
166
terminale \fB"~"\fP con nome utente \fB"shutdown"\fP o \fB"reboot"\fP
 
167
indica uno shutdown o reboot e la coppia di nomi di terminale
 
168
\fB"|"\fP/\fB"}"\fP registra la vecchia/nuova ora del sistema quando
 
169
il comando \fIdate(1)\fP la cambia. \fBwtmp\fP � mantenuto da
 
170
\fIlogin\fP(1), \fIinit\fP(1) e alcuni tipi di \fIgetty\fP(1). Nessuno
 
171
di questi programmi crea il file, perci� se viene la registrazione
 
172
rimane disabilitata.
 
173
.SH FILE
 
174
/var/adm/utmp
 
175
.br
 
176
/var/adm/wtmp
 
177
.SH "CONFORME A"
 
178
Le voci utmp di Linux non sono conformi n� a v7/BSD n� a SYSV: sono
 
179
un misto delle due. v7/BSD ha meno campi, ed � importante il fatto
 
180
che manchi del campo
 
181
\fBut_type\fP, cosa che  fa si che i programmi nativi tipo v7/BSD
 
182
mostrino le voci relative a sessioni terminate. 
 
183
Inoltre non esiste un file di configurazione che allochi le voci
 
184
per le sessioni. BSD si comporta in questo modo perch� gli manca
 
185
il campo
 
186
\fBut_id\fP.  In Linux (come in SYSV), il campo \fBut_id\fP di una
 
187
registrazione non cambier� mai una volta creato, il che riserva
 
188
la voce senza bisogno di un file di configurazione.
 
189
La cancellazione di \fBut_id\fP pu� risultare in corse critiche che portino
 
190
a voci di utmp corrotte e, potenzialmente, a buchi di sicurezza.
 
191
La cancellazione dei campi menzionati riempiendoli di byte nulli non
 
192
� richiesta dalla semantica SYSV, ma permette di far girare molti
 
193
programmi che suppongono semantiche di tipo BSD e che non modificano
 
194
utmp. Linux usa le convenzioni BSD per il contenuto delle righe del file
 
195
come documentato sopra.  
 
196
.PP
 
197
SYSV usa solo il campo ``type'' per marcare le righe e registra
 
198
messaggi informativi come \fB"new time"\fP nel campo
 
199
``line''. \fBUT_UNKNOWN\fP sembra essere una invenzione di Linux.
 
200
SYSV non ha i campi \fBut_host\fP e \fBut_addr\fP.
 
201
.PP
 
202
A differenza di vari
 
203
altri sistemi, dove la registrazione in utmp pu� essere disabilitata
 
204
cancellando il file,  utmp deve sempre esistere in Linux.
 
205
Se si vuole disabilitare il comando \fIwho\fP(1) basta togliere il
 
206
permesso di lettura al file utmp.
 
207
.PP
 
208
Si noti che lo struct di utmp � cambiato tra libc5 e libc6. Di conseguenza, 
 
209
un programma che usi il vecchio struct di libc5 altera
 
210
.IR /var/run/utmp " e/o " /var/log/wtmp .
 
211
 
 
212
.SH RESTRIZIONI
 
213
Il formato del file dipende dalla macchina, perci� si raccomanda di
 
214
modificarlo solo macchine della stessa architettura di quella su cui
 
215
il file � stato creato.
 
216
.SH BACHI
 
217
Questa pagina di manuale si basa su quella di libc5, ora le cose
 
218
potrebbero funzionare diversamente.
 
219
.SH "VEDERE ANCHE"
 
220
.BR ac (1),
 
221
.BR date (1),
 
222
.BR getutent (3),
 
223
.BR init (8),
 
224
.BR last (1),
 
225
.BR login (1),
 
226
BR updwtmp (3),
 
227
.BR who (1)
 
228