2004-11-03 13:51:07 +00:00
|
|
|
.\" 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.
|
|
|
|
.\"
|
|
|
|
.\" Derived from text written by Martin Schulze (or taken from glibc.info)
|
|
|
|
.\" and text written by Paul Thompson - both copyright 2002.
|
|
|
|
.\"
|
2007-05-18 09:55:10 +00:00
|
|
|
.TH LOGIN 3 2004-05-06 "GNU" "Linux Programmer's Manual"
|
2004-11-03 13:51:07 +00:00
|
|
|
.SH NAME
|
|
|
|
login, logout \- write utmp and wtmp entries
|
|
|
|
.SH SYNOPSIS
|
|
|
|
.B #include <utmp.h>
|
|
|
|
.sp
|
|
|
|
.BI "void login(const struct utmp *" ut );
|
2007-12-23 13:45:24 +00:00
|
|
|
.sp
|
2004-11-03 13:51:07 +00:00
|
|
|
.BI "int logout(const char *" ut_line );
|
2007-05-21 09:49:27 +00:00
|
|
|
.sp
|
|
|
|
Link with \fI\-lutil\fP.
|
2004-11-03 13:51:07 +00:00
|
|
|
.SH DESCRIPTION
|
|
|
|
The utmp file records who is currently using the system.
|
2007-04-12 22:42:49 +00:00
|
|
|
The wtmp file records all logins and logouts.
|
|
|
|
See
|
2004-11-03 13:51:07 +00:00
|
|
|
.BR utmp (5).
|
|
|
|
.LP
|
|
|
|
The function
|
|
|
|
.BR login ()
|
2007-06-13 22:13:46 +00:00
|
|
|
takes the supplied \fIstruct utmp\fP,
|
2004-11-03 13:51:07 +00:00
|
|
|
.IR ut ,
|
2007-12-13 20:46:52 +00:00
|
|
|
and writes it to both the utmp and the wtmp file.
|
2004-11-03 13:51:07 +00:00
|
|
|
.LP
|
|
|
|
The function
|
|
|
|
.BR logout ()
|
|
|
|
clears the entry in the utmp file again.
|
2007-05-16 17:35:34 +00:00
|
|
|
.SS "GNU Details"
|
2004-11-03 13:51:07 +00:00
|
|
|
More precisely,
|
|
|
|
.BR login ()
|
|
|
|
takes the argument
|
|
|
|
.I ut
|
|
|
|
struct, fills the field
|
2007-12-22 16:40:46 +00:00
|
|
|
.I ut\->ut_type
|
2004-11-03 13:51:07 +00:00
|
|
|
(if there is such a field) with the value
|
|
|
|
.BR USER_PROCESS ,
|
|
|
|
and fills the field
|
2007-12-22 16:40:46 +00:00
|
|
|
.I ut\->ut_pid
|
2004-11-03 13:51:07 +00:00
|
|
|
(if there is such a field) with the process ID of the calling process.
|
|
|
|
Then it tries to fill the field
|
2007-12-22 16:40:46 +00:00
|
|
|
.IR ut\->ut_line .
|
2007-06-17 14:12:43 +00:00
|
|
|
It takes the first of \fIstdin\fP, \fIstdout\fP, \fIstderr\fP
|
|
|
|
that is a tty, and
|
2007-06-13 22:13:46 +00:00
|
|
|
stores the corresponding pathname minus a possible leading \fI/dev/\fP
|
2004-11-03 13:51:07 +00:00
|
|
|
into this field, and then writes the struct to the utmp file.
|
|
|
|
On the other hand, if no tty name was found, this field is filled with "???"
|
|
|
|
and the struct is not written to the utmp file.
|
|
|
|
After this, the struct is written to the wtmp file.
|
|
|
|
.LP
|
|
|
|
The
|
|
|
|
.BR logout ()
|
|
|
|
function searches the utmp file for an entry matching the
|
|
|
|
.I ut_line
|
2007-04-12 22:42:49 +00:00
|
|
|
argument.
|
|
|
|
If a record is found, it is updated by zeroing out the
|
2004-11-03 13:51:07 +00:00
|
|
|
.I ut_name
|
|
|
|
and
|
|
|
|
.I ut_host
|
|
|
|
fields, updating the
|
|
|
|
.I ut_tv
|
|
|
|
timestamp field and setting
|
|
|
|
.I ut_type
|
|
|
|
(if there is such a field) to
|
|
|
|
.BR DEAD_PROCESS .
|
2007-05-16 05:00:31 +00:00
|
|
|
.SH "RETURN VALUE"
|
2004-11-03 13:51:07 +00:00
|
|
|
The
|
|
|
|
.BR logout ()
|
|
|
|
function returns 1 if the entry was successfully written to the
|
|
|
|
database, or 0 if an error occurred.
|
2007-05-19 04:30:20 +00:00
|
|
|
.SH FILES
|
|
|
|
.TP
|
|
|
|
.I /var/run/utmp
|
2007-06-22 19:42:52 +00:00
|
|
|
user accounting database, configured through
|
|
|
|
.B _PATH_UTMP
|
|
|
|
in
|
2007-05-19 04:30:20 +00:00
|
|
|
.I <paths.h>
|
|
|
|
.TP
|
|
|
|
.I /var/log/wtmp
|
2007-06-22 19:42:52 +00:00
|
|
|
user accounting log file, configured through
|
|
|
|
.B _PATH_WTMP
|
|
|
|
in
|
2007-05-19 04:30:20 +00:00
|
|
|
.I <paths.h>
|
|
|
|
.SH "CONFORMING TO"
|
|
|
|
Not in POSIX.1-2001.
|
|
|
|
Present on the BSDs.
|
2007-05-16 02:54:18 +00:00
|
|
|
.SH NOTES
|
2004-11-03 13:51:07 +00:00
|
|
|
Note that the
|
|
|
|
member
|
2005-11-02 13:55:25 +00:00
|
|
|
.I ut_user
|
2007-04-12 22:42:49 +00:00
|
|
|
of
|
|
|
|
.I struct utmp
|
2005-11-02 13:55:25 +00:00
|
|
|
is called
|
|
|
|
.I ut_name
|
2007-04-24 16:44:51 +00:00
|
|
|
in BSD.
|
|
|
|
Therefore,
|
2005-11-02 13:55:25 +00:00
|
|
|
.I ut_name
|
2004-11-03 13:51:07 +00:00
|
|
|
is defined as an alias for
|
2005-11-02 13:55:25 +00:00
|
|
|
.I ut_user
|
2004-11-03 13:51:07 +00:00
|
|
|
in
|
2005-11-02 13:55:25 +00:00
|
|
|
.IR <utmp.h> .
|
2004-11-03 13:51:07 +00:00
|
|
|
.SH "SEE ALSO"
|
|
|
|
.BR getutent (3),
|
|
|
|
.BR utmp (5)
|