ਲਿਨਕਸ ਕਮਾਂਡ ਲਓ - wtmp

ਨਾਮ

utmp, wtmp - ਲਾਗਇਨ ਰਿਕਾਰਡ

ਸੰਖੇਪ

#include

ਵਰਣਨ

Utmp ਫਾਇਲ ਇਸ ਬਾਰੇ ਜਾਣਕਾਰੀ ਲੱਭਣ ਵਿੱਚ ਮੱਦਦ ਕਰਦੀ ਹੈ ਕਿ ਵਰਤਮਾਨ ਵਿੱਚ ਸਿਸਟਮ ਕਿਸ ਨੇ ਵਰਤ ਰਿਹਾ ਹੈ ਵਰਤਮਾਨ ਵਿੱਚ ਸਿਸਟਮ ਵਰਤ ਰਹੇ ਹੋਰ ਉਪਭੋਗਤਾ ਹੋ ਸਕਦੇ ਹਨ, ਕਿਉਂਕਿ ਸਾਰੇ ਪ੍ਰੋਗਰਾਮਾਂ ਨੇ utmp ਲੌਗਿੰਗ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕੀਤੀ.

ਚੇਤਾਵਨੀ: utmp ਲਿਖਣ ਯੋਗ ਨਹੀਂ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ, ਕਿਉਂਕਿ ਬਹੁਤ ਸਾਰੇ ਸਿਸਟਮ ਪ੍ਰੋਗਰਾਮ (ਮੂਰਖਤਾ) ਇਸ ਦੀ ਇਕਸਾਰਤਾ ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ. ਤੁਸੀਂ ਫਿਕਸ ਸਿਸਟਮ ਲਾਜਫਾਇਲਾਂ ਅਤੇ ਸਿਸਟਮ ਫਾਈਲਾਂ ਦੇ ਸੋਧਾਂ ਦਾ ਖਤਰਾ ਪੈਦਾ ਕਰਦੇ ਹੋ ਜੇਕਰ ਤੁਸੀਂ ਕਿਸੇ ਵੀ ਯੂਜ਼ਰ ਨੂੰ utmp ਲਿਖਣ ਯੋਗ ਬਣਾਉਂਦੇ ਹੋ.

ਫਾਇਲ ਐਂਟਰੀਆਂ ਦੀ ਇਕ ਲੜੀ ਹੈ ਜੋ ਸ਼ਾਮਲ ਫਾਇਲ ਵਿਚ ਘੋਸ਼ਿਤ ਕੀਤੀ ਹੇਠ ਲਿਖੀ ਬਣਤਰ ਨਾਲ ਹੈ (ਨੋਟ ਕਰੋ ਕਿ ਇਹ ਸਿਰਫ਼ ਕਈ ਪਰਿਭਾਸ਼ਾਵਾਂ ਵਿੱਚੋਂ ਇੱਕ ਹੈ; ਵੇਰਵੇ libc ਦੇ ਵਰਜਨ ਤੇ ਨਿਰਭਰ ਹਨ):

#define UT_UNKNOWN 0 #define BOOT_TIME 2 #define new_TIME 3 #define OLD_TIME 4 # ਡਿਫਾਈਨ ਕਰੋ INIT_PROCESS 5 # ਡਿਫਾਈਨ ਕਰੋ LOGIN_PROCESS 6 # ਡਿਫਾਈਨ ਕਰੋ USER_PROCESS 7 # DEF_PHECESS ਪਰਿਭਾਸ਼ਾ 8 # ਖਾਤੇ ਨੂੰ ਪਰਿਭਾਸ਼ਤ 9 # ਡਿਫਾਈਨ UT_LINESIZE 12 # ਪਰਿਭਾਸ਼ਿਤ UT_NAMESIZE 32 # ਪਰਿਭਾਸ਼ਿਤ UT_HOSTSIZE 256 ਸਟ੍ਰੈਟ exit_status {short int e_termination; / * ਪ੍ਰਕਿਰਿਆ ਸਮਾਪਤੀ ਸਥਿਤੀ * / ਛੋਟਾ ਇੰਟਰ e_exit; / * ਪ੍ਰਕਿਰਿਆ ਤੋਂ ਬਾਹਰ ਦੀ ਸਥਿਤੀ. * /}; struct utmp {short ut_type; / * ਕਿਸਮ ਦਾ ਲੌਗਿਨ * / pid_t ut_pid; / * ਪਿੰਨ ਦਾਖਲ ਹੋਣ ਦੀ ਪ੍ਰਕਿਰਿਆ * / char ut_line [UT_LINESIZE]; / tty ਦਾ ਡਿਵਾਈਸ ਨਾਮ - "/ dev /" * / char ut_id [4]; / * init id ਜਾਂ abbrev. ttyname * / char ut_user [UT_NAMESIZE]; / * ਉਪਭੋਗਤਾ ਨਾਮ * / ਚਾਰ ਊਰਜਾ_ਸੋਧ [UT_HOSTSIZE]; ਰਿਮੋਟ ਲਾਗਇਨ ਲਈ / * ਮੇਜ਼ਬਾਨ ਨਾਂ * / struct exit_status ut_exit; / * DEAD_PROCESS ਦੇ ਤੌਰ ਤੇ ਚਿੰਨ੍ਹਿਤ ਕੀਤੀ ਪ੍ਰਕਿਰਿਆ ਦੇ ਨਿਕਾਸ ਦੀ ਸਥਿਤੀ * / ਲੰਮੇ ut_session; / * ਸ਼ੈਸ਼ਨ ਆਈਡੀ, ਜੋ ਵਿੰਡੋਿੰਗ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ * / struct ਟਾਈਮਵਲ ut_tv; / * ਸਮੇਂ ਦੀ ਐਂਟਰੀ ਬਣਾਈ ਗਈ ਸੀ * / int32_t ut_addr_v6 [4]; / * ਰਿਮੋਟ ਹੋਸਟ ਦਾ IP ਐਡਰੈੱਸ. * / ਚਾਰ ਪੈਡ [20]; / * ਭਵਿੱਖ ਵਿੱਚ ਵਰਤੋਂ ਲਈ ਰਾਖਵਾਂ * /}; / * ਪਿੱਛੇ ਵੱਲ ਅਨੁਕੂਲਤਾ ਹੈਕ * / #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]

ਇਹ ਢਾਂਚਾ ਉਪਭੋਗਤਾ ਦੇ ਟਰਮੀਨਲ, ਯੂਜ਼ਰ ਦੇ ਲਾਗਇਨ ਨਾਮ ਅਤੇ ਟਾਈਮ (2) ਦੇ ਰੂਪ ਵਿੱਚ ਲਾਗਇਨ ਦੇ ਸਮੇਂ ਨਾਲ ਸੰਬੰਧਿਤ ਵਿਸ਼ੇਸ਼ ਫਾਇਲ ਦਾ ਨਾਮ ਦਿੰਦਾ ਹੈ. ਸਤਰ ਖੇਤਰ ਨੂੰ '\ 0' ਦੁਆਰਾ ਬੰਦ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਜੇਕਰ ਉਹ ਖੇਤਰ ਦੇ ਆਕਾਰ ਤੋਂ ਛੋਟਾ ਹੁੰਦੇ ਹਨ.

ਪਹਿਲੀ ਐਂਟਰੀਆਂ ਨੇ ਕਦੇ ਵੀ init (8) ਪ੍ਰੋਸੈਸਿੰਗ ਇਨਿਟੇਬ (5) ਤੋਂ ਨਤੀਜਾ ਲਿਆ. ਇੱਕ ਐਂਟਰੀ ਤੇ ਕਾਰਵਾਈ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ, init (8) utmp ਨੂੰ ut_type ਨੂੰ DEAD_PROCESS ਸੈੱਟ ਕਰਕੇ , ut_user , ut_host , ਅਤੇ ut_time ਨੂੰ ਹਰ ਰਿਕੌਰਡ ਲਈ ਨਿਕਲੇ ਬਾਇਟ ਨਾਲ ਸਾਫ਼ ਕਰ ਦਿੰਦਾ ਹੈ , ਜੋ ਕਿ ut_type DEAD_PROCESS ਜਾਂ RUN_LVL ਨਹੀਂ ਹੈ ਅਤੇ ਜਿੱਥੇ PID ut_pid ਨਾਲ ਕੋਈ ਵੀ ਕਾਰਜ ਮੌਜੂਦ ਨਹੀਂ ਹੈ. ਜੇ ਲੋੜੀਂਦੀ ut_id ਨਾਲ ਕੋਈ ਖਾਲੀ ਰਿਕਾਰਡ ਨਹੀਂ ਲੱਭਿਆ, ਤਾਂ init ਇੱਕ ਨਵਾਂ ਬਣਾਉਂਦਾ ਹੈ. ਇਹ ut_id ਨੂੰ inittab, ut_pid ਅਤੇ ut_time ਤੋਂ ਮੌਜੂਦਾ ਮੁੱਲਾਂ ਲਈ, ਅਤੇ ut_type INIT_PROCESS ਵਿੱਚ ਸੈੱਟ ਕਰਦਾ ਹੈ .

Getty (8) pid ਰਾਹੀਂ ਐਂਟਰੀ ਲੱਭਦੀ ਹੈ, LOGIN_PROCESS ਵਿੱਚ ਤਬਦੀਲੀਆਂ ਨੂੰ ਤਬਦੀਲ ਕਰਦਾ ਹੈ , ut_time ਵਿੱਚ ਬਦਲਾਵ, ਸੈੱਟਿੰਗਸ ut_line , ਅਤੇ ਸਥਾਪਿਤ ਹੋਣ ਵਾਲੇ ਕੁਨੈਕਸ਼ਨ ਦੀ ਉਡੀਕ ਕਰਦਾ ਹੈ. ਲਾਗਇਨ (8), ਇੱਕ ਉਪਭੋਗਤਾ ਦੇ ਪ੍ਰਮਾਣਿਤ ਹੋਣ ਦੇ ਬਾਅਦ, USER_PROCESS ਵਿੱਚ ut_type ਤਬਦੀਲ ਕਰਦਾ ਹੈ , ut_time ਬਦਲਦਾ ਹੈ, ਅਤੇ ut_host ਅਤੇ ut_addr ਨੂੰ ਸੈੱਟ ਕਰਦਾ ਹੈ. Getty (8) ਅਤੇ ਲੌਗਿਨ (8) ਤੇ ਨਿਰਭਰ ਕਰਦੇ ਹੋਏ, ਰਿਕਾਰਡ ਨੂੰ ਤਰਜੀਹੀ ut_pid ਦੀ ਬਜਾਏ ut_line ਦੁਆਰਾ ਸਥਿੱਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ.

ਜਦੋਂ init (8) ਖੋਜਦਾ ਹੈ ਕਿ ਇੱਕ ਕਾਰਜ ਬੰਦ ਹੋ ਗਿਆ ਹੈ, ਇਹ ut_pid ਰਾਹੀਂ ਆਪਣਾ utmp ਐਂਟਰੀ ਲੱਭਦਾ ਹੈ, DE_D_PROCESS ਵਿੱਚ ut_type ਦਿੰਦਾ ਹੈ , ਅਤੇ null ਬਾਈਟਾਂ ਨਾਲ ut_user , ut_host ਅਤੇ ut_time ਨੂੰ ਸਾਫ਼ ਕਰਦਾ ਹੈ.

xterm (1) ਅਤੇ ਹੋਰ ਟਰਮੀਨਲ ਐਮਬਿਲਟਰ ਸਿੱਧੇ ਤੌਰ ਤੇ ਇੱਕ USER_PROCESS ਰਿਕਾਰਡ ਬਣਾਉਂਦੇ ਹਨ ਅਤੇ / dev / ttyp % c ਦੇ ਪਿਛਲੇ ਦੋ ਅੱਖਰ ਜਾਂ / % / p / % d ਲਈ p % d ਦੀ ਵਰਤੋਂ ਕਰਕੇ ut_id ਨੂੰ ਉਤਪੰਨ ਕਰਦੇ ਹਨ. ਜੇਕਰ ਉਹ ਇਸ id ਲਈ DEAD_PROCESS ਲੱਭਦੇ ਹਨ, ਤਾਂ ਉਹ ਇਸ ਨੂੰ ਰੀਸਾਈਕਲ ਕਰਦੇ ਹਨ, ਨਹੀਂ ਤਾਂ ਉਹ ਨਵੀਂ ਐਂਟਰੀ ਬਣਾਉਂਦੇ ਹਨ. ਜੇ ਉਹ ਕਰ ਸਕਦੇ ਹਨ, ਤਾਂ ਉਹ ਇਸਨੂੰ ਨਿਕਾਸ 'ਤੇ DEAD_PROCESS ਦੇ ਤੌਰ ਤੇ ਨਿਸ਼ਾਨ ਲਗਾਉਂਦੇ ਹਨ ਅਤੇ ਇਹ ਸਲਾਹ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ ਕਿ ਉਹ ut_line , ut_time , ut_user , ਅਤੇ ut_host ਨੂੰ ਵੀ ਚੰਗੀ ਤਰ੍ਹਾਂ ਨਹੀਂ ਕਰਦੇ.

xdm (8) ਨੂੰ ਇੱਕ utmp ਰਿਕਾਰਡ ਨਹੀਂ ਬਣਾਉਣਾ ਚਾਹੀਦਾ ਹੈ, ਕਿਉਂਕਿ ਕੋਈ ਨਿਰਧਾਰਤ ਟਰਮੀਨਲ ਨਹੀਂ ਹੈ. ਇਸ ਨੂੰ ਬਣਾਉਣ ਤੇ ਗਲਤੀ ਨਾਲ ਨਤੀਜਾ ਹੋਵੇਗਾ ਜਿਵੇਂ ਕਿ 'ਉਂਗਲੀ: ਸਟੇਟ / ਡਿਵੀਵਰ / ਮੈਟਾਈਨ.ਡਮ' ਨਹੀਂ ਹੋ ਸਕਦਾ. ਇਸ ਨੂੰ wtmp ਐਂਟਰੀਆਂ ਬਣਾਉਣਾ ਚਾਹੀਦਾ ਹੈ, ਹਾਲਾਂਕਿ, ਜਿਵੇਂ ਕਿ ftpd (8) ਕਰਦਾ ਹੈ.

ਟੇਲਨੈਟਡ (8) ਇੱਕ LOGIN_PROCESS ਐਂਟਰੀ ਸੈਟ ਕਰਦਾ ਹੈ ਅਤੇ ਬਾਕੀ ਦੇ ਤੌਰ ਤੇ ਲੌਗਿਨ (8) ਨੂੰ ਛੱਡਦਾ ਹੈ ਟੇਲਨੈੱਟ ਸੈਸ਼ਨ ਦੇ ਖਤਮ ਹੋਣ ਤੋਂ ਬਾਅਦ, ਟੇਲਨੈਟ ਡੀ (8) ਵਰਣਿਤ ਤਰੀਕੇ ਨਾਲ utmp ਸਾਫ਼ ਕਰਦਾ ਹੈ.

Wtmp ਫਾਇਲ ਸਾਰੇ ਲਾਗਿੰਨ ਅਤੇ ਲਾਗਆਉਟ ਰਿਕਾਰਡ ਕਰਦਾ ਹੈ. ਇਸਦਾ ਫੌਰਮੈਟ ਅਸਲ ਵਿੱਚ utmp ਵਰਗਾ ਹੈ ਸਿਵਾਏ ਸਿਵਾਏ ਕਿ ਇੱਕ ਅਣਚਾਹੇ ਵਰਤੋਂਕਾਰ ਨਾਮ ਸੰਬੰਧਿਤ ਟਰਮਿਨਲ ਤੇ ਇੱਕ ਲਾਗਆਉਟ ਦਰਸਾਉਂਦਾ ਹੈ. ਇਸ ਤੋਂ ਇਲਾਵਾ, ਟਰਮੀਨਲ ਦਾ ਨਾਂ "ਬੰਦ ਕਰੋ" ਜਾਂ "ਰਿਮਬੂਟ" ਨਾਲ ਇੱਕ ਸਿਸਟਮ ਸ਼ੱਟਡਾਊਨ ਜਾਂ ਮੁੜ-ਚਾਲੂ ਅਤੇ "." / "}" ਪੁਰਾਣਾ / ਨਵਾਂ ਸਿਸਟਮ ਸਮਾਂ ਲੌਗ ਕਰਦਾ ਹੈ ਜਦੋਂ ਮਿਤੀ (1) ਇਸ ਨੂੰ ਬਦਲਦੀ ਹੈ wtmp ਲਾਗਇਨ (1), init (1), ਅਤੇ getty (1) ਦੇ ਕੁਝ ਵਰਜਨਾਂ ਦੁਆਰਾ ਸਾਂਭਿਆ ਜਾਂਦਾ ਹੈ. ਇਹਨਾਂ ਪ੍ਰੋਗਰਾਮਾਂ ਵਿਚੋਂ ਨਾ ਤਾਂ ਫਾਈਲ ਬਣਾਉਦੀ ਹੈ , ਇਸ ਲਈ ਜੇਕਰ ਇਹ ਹਟਾ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਰਿਕਾਰਡ ਰੱਖਣ ਬੰਦ ਹੈ.