UTMP 5

中文man手册

UTMP

NAME[åç§°]
SYNOPSIS[æ»è§]
DESCRIPTION[æè¿°]
FILES[ç¸å³æä»¶]
CONFORMING TO[éµå¾ª]
RESTRICTIONS[éå¶]
BUGS[缺æ¾]
SEE ALSO[å¦è§]
[䏿çç»´æ¤äºº]
[ä¸æçææ°æ´æ°]
ãä¸å½linux论åmanæå页翻è¯è®¡åã:
è·

NAME[åç§°]

utmp, wtmp - ç» å½ è®° å½ï¼login recordsï¼

SYNOPSIS[æ»è§]

#include

DESCRIPTION[æè¿°]

utmp æ ä»¶ ç¨ äº è®° å½ å½ å ç³» ç» ç¨ æ· æ¯ åª äº äººã ä½ æ¯ å® é ç 人 æ° å¯ è½ æ¯ è¿ ä¸ª æ° ç® è¦ å¤ ï¼ å  ä¸º å¹¶ é æ æ ç¨ æ· é½ ç¨ utmp ç» å½ã

è¦å: utmp å¿ é¡» ç½® 为 ä¸ å¯ å ï¼ å  ä¸º å¾ å¤ ç³» ç» ç¨ åº ï¼ æ ç¹ å» ç é£ ç§ ï¼ ä¾ èµ äº å®ã å¦ æ ä½  å° å® ç½® 为 å¯ å ï¼ å¶ ä» ç¨ æ· å¯ è½ ä¼ ä¿® æ¹ å® ï¼//* 导 è´ ç¨ åº è¿ è¡ åº é ï¼ ã ï¼//* ï¼//* ï¼ä¸ 为 è¯ è æ³¨ï¼

æ ä»¶ ä¸ æ¯ ä¸ äº æ¡ ç® ç å 表 ï¼ æ¡ ç® ç ç» æ ï¼ å¨ utmp.h ä¸ è¿ è¡ äº å£° æ ï¼ è§ ä¸ ( 注 æ è¿ é åª å åº äº ä¸ é¨ å ï¼ ç» è ä¾ libc ç ç æ¬ æ æ ä¸ å ï¼ï¼

#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; /* process termination status. */
short int e_exit; /* process exit status. */
};

struct utmp {
short ut_type; /* type of login */
pid_t ut_pid; /* pid of login process */
char ut_line[UT_LINESIZE]; /* device name of tty - "/dev/" */
char ut_id[4]; /* init id or abbrev. ttyname */
char ut_user[UT_NAMESIZE]; /* user name */
char ut_host[UT_HOSTSIZE]; /* hostname for remote login */
struct exit_status ut_exit; /* The exit status of a process
marked as DEAD_PROCESS. */
long ut_session; /* session ID, used for windowing*/
struct timeval ut_tv; /* time entry was made. */
int32_t ut_addr_v6[4]; /* IP address of remote host. */
char pad[20]; /* Reserved for future use. */
};

/* Backwards compatibility hacks. */
#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]

è¿ ä¸ª ç» æ ç» åº äº ä¸ ç¨ æ· ç» ç«¯ è ç³» ç æ ä»¶ ï¼ ç¨ æ· ç ç» å½ å ï¼ è®° å½ äº time(2) 表 ä¸ ç ç» å½ æ¶ é´ ã å 符 串 å¦ æ æ¯ ç» å® ç 大 å° å° ç è¯ ï¼ å 以 ’\0’ ç» æ ä¹ã

第ä¸ä¸ªæ¡ç®ç± init(8) æ§è¡ inittab(5)è产çãç¶èï¼å¨äº§çæ¡ç®ä»¥åï¼ init(8) åå° utmp æ¸ç©ºï¼éè¿è®¾å® ut_type 为 DEAD_PROCESSæ¥å®ç°. å½ut_type 䏿¯ DEAD_PROCESS æ RUN_LVL å¹¶ä¸ä¸åå¨è¿ç¨å·ä¸º ut_pid çè¿ç¨æ¶,éè¿ç¨ç©ºä¸²æ¸ç©º ut_user, ut_host å ut_time æ¥å®ç°ã妿ä¸åå¨ ut_id ç空记å½, initï¼åå§åæ¶ï¼ ä¼å建ä¸ä¸ªãå®å°ä¼ä¾æ® inittab æ¥è®¾ç½® ut_id , 设置 ut_pid å ut_time 为å½åå¼ï¼è®¾ç½® ut_type å° INIT_PROCESS.

getty(8) 便®è¿ç¨å·å®ä½æ¡ç®, å° ut_type æ¹ä¸º LOGIN_PROCESS, æ¹å ut_time, è®¾å® ut_line ï¼ç¶åçå¾è¿æ¥å»ºç«ã login(8), å¨é´å«å®ç¨æ·å, å° ut_type æ¹ä¸º USER_PROCESS, æ¹å ut_time å¹¶è®¾å® ut_host å ut_addr. æ ¹æ® getty(8) å login(8)宿çåè½, å¯ä»¥ç¨ ut_line æ¥å®ä½è®°å½ï¼è½ç¶ç¨ ut_pid å¯è½æ´å¥½äºã

å½ init(8) åç°æè¿ç¨å卿¶, å®éè¿ ut_pid æ¥å®ä½å®ç utmp æ¡ç®, è®¾å® ut_type 为 DEAD_PROCESS ï¼ç¶åç¨é¶åèæ¸ç©º ut_user, ut_host å ut_time ã

xterm(1) åå¶ä»ç»ç«¯ä»¿çå¨ç´æ¥å建 USER_PROCESS è®°å½å¹¶éè¿ä½¿ç¨ /dev/ttyp%c çæåä¸¤ä¸ªåæ¯æç¨ p%d ï¼/dev/pts/%dï¼æ¥äº§ç ut_id ã 妿å®ä»¬æ¾å°è¿ä¸ª id ç DEAD_PROCESS , å®ä»¬å°±ä½¿ç¨å®ï¼å¦åå°±å建ä¸ä¸ªæ°çæ¡ç®. 妿å¯è½ï¼å®ä»¬å°å®æ è®°ä¸º DEAD_PROCESS å¹¶å° ut_line, ut_time, ut_user å ut_host 置为 nullã

xdm(8) ä¸ä¼å建 utmp è®°å½, å ä¸ºæ²¡æç»ç«¯ä¸å®ç¸è¿. è¯å¾ç¨å®äº§ç utmp è®°å½ä¼å¼èµ·å¦ä¸é误ï¼finger: can not stat /dev/machine.dom. å®åºè¯¥ç¨äºå建 wtmp æ¡ç®, å ftpd(8) ç¸ä¼¼.

telnetd(8) è®¾å® LOGIN_PROCESS æ¡ç®å¹¶æå¶ä»çççç» login(8) å»åãtelnet ä»»å¡ç»æå, telnetd(8) cleans up utmp in the described way.ï¼ï¼ï¼ï¼

wtmp æä»¶è®°å½äºææçç»å½åéåºãå®çæ ¼å¼ä¸ utmp å ä¹å®å¨ä¸æ ·ï¼ä¾å¤æ¯ï¼ç¨ç©ºç¨æ·åæ¥è¡¨ç¤ºå¨ç¸å³ç»ç«¯ä¸çéåºï¼ã餿- ¤ä»¥å¤ï¼ ç¨ç»ç«¯å "˜" åç¨æ·å "shutdown" æ "reboot" 表示系ç»å³æºæéå¯ï¼ the pair of terminal names "|"/"}" logs the old/new system time when date(1) changes it. wtmp ç± login(1), å init(1) 以åæäºçæ¬ç getty(1) 使ç¨. 使¯è¿äºç¨åºå¹¶ä¸å建å®,æä»¥å¦æå°å®å é¤çè¯æ¨å°±å¾ä¸å°è®°å½äºã

FILES[ç¸å³æä»¶]

/var/run/utmp
/var/log/wtmp

CONFORMING TO[éµå¾ª]

Linux utmp æ¢ä¸éµå¾ª v7/BSD ä¹ä¸éµå¾ª SYSV: å®å®éæ¯ä¸¤èçæ··å. v7/BSD ä¸åæ¯è¾å°; æéè¦çæ¯å®æ²¡æ ut_type (ut_type å¯ä»¥ä½¿æ¬å°ç v7/BSD-ç±»çç¨åºæ¾ç¤º(以次为ä¾) dead æ login æ¡ç®.èä¸,没æä¸ºä»»å¡åéééçæä»¶. BSD åç¸å(BSD does so), å ä¸ºå®ç¼ºå°çæ¯ ut_id å. å¨ Linux ä¸(SYSV ä¸ä¹ä¸æ ·), è®°å½ç ut_id å䏿¦è®¾å®å°±ä¸åæ¹å,å®ä¿çééèä¸éè¦ä»ä¹éç½®æä»¶. æ¸é¤ ut_id å¯è½ä¼å¼èµ· race conditions ä»è导è´å®å¨æ¼æ´. å°± SYSV çè¦æ±æ¥è®²,ç¨ç©ºå- èå¡«åçæ¹å¼æ¥æ¸ç©ºä¸é¢æå°çå个å䏿¯å¿é¡»ç,使¯è¿æ ·å使å¾è¿è¡éç¨ BSD è¯- æ³èå䏿¹å utmp çç¨åºæä¸ºå¯è½. æ£å¦ä¸é¢æåç,Linux å¨å¥åä¸ä½¿ç¨ BSD çæ¯ä¾.

SYSV å¨å¥åä¸ä»ä½¿ç¨ç±»åå廿 è¯å®ä»¬ææ¯ç»å½ä¿¡æ¯(ä¾å¦:. "new time"). UT_UNKNOWN åªå¨ Linux 䏿. SYSV 没æ ut_host å ut_addr_v6 å.

ä¸è±¡å¶å®åç§ç³»ç», æ¨å¯ä»¥éè¿å é¤æä»¶æ¥ç¦æ¢ utmp , å¨ Linux ä¸ utmp å¿é¡»ä¸ç´åå¨. 妿你è¦ç¦æ¢ who(1) å½ä»¤,æ¨éè¦ä½¿æ´ä¸ª utmp ä¸å¯è¯».

éè¦æ³¨æçæ¯å¨ libc5 å libc6 ä¸ utmp çç»ææ¯ä¸åç.å æ¤ä½¿ç¨æ§ç»æçç¨åºä¼ç ´å /var/run/utmp å/or /var/log/wtmp. Debian ç³»ç»åå«ä¸ä¸ªä¿®è¡¥è¿ç libc5 å®å¯ä»¥ä½¿ç¨æ°çæ ¼å¼. ä½å¯¹ wtmp, é®é¢ä¾ç¶åå¨å ä¸ºå®ç´æ¥å¯¹ libc5 è¿è¡åå.

RESTRICTIONS[éå¶]

æä»¶æ ¼å¼ä¾æºå¨èä¸å, å æ¤æ¨èçåæ³æ¯:å¨å建å®çæºå¨ä¸ä½¿ç¨å®.

BUGS[缺æ¾]

æ¬æå页åºäº libc5 , ç°å¨å¯è½æåµå·²æä¸åäº.

SEE ALSO[å¦è§]

ac(1), date(1), getutent(3), init(8), last(1), login(1), updwtmp(3), who(1)

[䏿çç»´æ¤äºº]

Redcandle <redcandle51@chinaren.com>

[ä¸æçææ°æ´æ°]

2001.11.08

ãä¸å½linux论åmanæå页翻è¯è®¡åã:

http://cmpp.linuxforum.net

è·

æ¬é¡µé¢ä¸æçç±ä¸æ man æå页计åæä¾ã
䏿 man æå页计åï¼https://github.com/man-pages-zh/manpages-zh