Date: Thu, 11 Oct 2001 17:02:26 +0400 From: Yar Tikhiy <yar@freebsd.org> To: hackers@freebsd.org, doc@freebsd.org Subject: utmp(5) manpage revised Message-ID: <20011011170226.A2162@snark.rinet.ru>
index | next in thread | raw e-mail
Hi everybody,
The current utmp(5) manpage language (not markup)
has a number of drawbacks and errors:
o There is no information for programmers on the actual structure
of the files the page describes.
o The C structure members aren't described.
o Despites the page language, neither utmp nor lastlog grow
continually or need rotation.
o It describes in a wrong way how a user's logout is recorded to wtmp.
o The login(3), logout(3) and logwtmp(3) functions aren't mentioned.
Here's a patch addressing all the issues. Review it please.
--
Yar
Index: utmp.5
===================================================================
RCS file: /home/ncvs/src/share/man/man5/utmp.5,v
retrieving revision 1.16
diff -u -r1.16 utmp.5
--- utmp.5 2001/10/11 11:29:37 1.16
+++ utmp.5 2001/10/11 12:59:35
@@ -57,12 +57,6 @@
the
.Nm wtmp
file.
-.Pp
-These files can grow rapidly on busy systems, so daily or weekly rotation
-is recommended.
-If any one of these files does not exist, it is not created.
-They must be created manually and are maintained by
-.Xr newsyslog 8 .
.Bd -literal -offset indent
#define _PATH_UTMP "/var/run/utmp"
#define _PATH_WTMP "/var/log/wtmp"
@@ -73,19 +67,39 @@
#define UT_HOSTSIZE 16
struct lastlog {
- time_t ll_time;
- char ll_line[UT_LINESIZE];
- char ll_host[UT_HOSTSIZE];
+ time_t ll_time; /* When user logged in */
+ char ll_line[UT_LINESIZE]; /* Terminal line name */
+ char ll_host[UT_HOSTSIZE]; /* Host user came from */
};
struct utmp {
- char ut_line[UT_LINESIZE];
- char ut_name[UT_NAMESIZE];
- char ut_host[UT_HOSTSIZE];
- time_t ut_time;
+ char ut_line[UT_LINESIZE]; /* Terminal line name */
+ char ut_name[UT_NAMESIZE]; /* User's login name */
+ char ut_host[UT_HOSTSIZE]; /* Host user came from */
+ time_t ut_time; /* When user logged in */
};
.Ed
.Pp
+The
+.Nm lastlog
+file is a linear array of
+.Fa lastlog
+structures indexed by a user's
+.Tn UID .
+The
+.Nm utmp
+file is a linear array of
+.Fa utmp
+structures indexed by a terminal line number
+(see
+.Xr ttyslot 3 ) .
+The
+.Nm wtmp
+file consists of
+.Fa utmp
+structures and is a binary log file,
+that is, grows linearly at its end.
+.Pp
Each time a user logs in, the
.Xr login 1
program looks up the user's
@@ -132,10 +146,19 @@
and appends the user's
.Fa utmp
record.
-The same
+The user's subsequent logout from the terminal
+line is marked by a special
.Fa utmp
-record, with an updated time stamp is later appended
-to the file when the user logs out (see
+record with
+.Fa ut_line
+set accordingly,
+.Fa ut_time
+updated, but
+.Fa ut_name
+and
+.Fa ut_host
+both empty
+(see
.Xr init 8 ) .
The
.Nm wtmp
@@ -184,6 +207,29 @@
.Ql \&{
indicates the new time.
.El
+.Sh NOTES
+The
+.Nm wtmp
+file can grow rapidly on busy systems, so daily or weekly rotation
+is recommended.
+It is maintained by
+.Xr newsyslog 8 .
+.Pp
+If any one of these files does not exist, it is not created by
+.Xr login 1 .
+They must be created manually.
+.Pp
+The supplied
+.Xr login 3 ,
+.Xr logout 3 ,
+and
+.Xr logwtmp 3
+utility functions should be used to perform
+the standard actions on the
+.Nm utmp
+and
+.Nm wtmp
+files.
.Sh FILES
.Bl -tag -width /var/log/lastlog -compact
.It Pa /var/run/utmp
@@ -204,6 +250,10 @@
.Xr login 1 ,
.Xr w 1 ,
.Xr who 1 ,
+.Xr login 3 ,
+.Xr logout 3 ,
+.Xr logwtmp 3 ,
+.Xr ttyslot 3 ,
.Xr ac 8 ,
.Xr init 8
.Sh HISTORY
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011011170226.A2162>
