ಲಿನಕ್ಸ್ ಕಮಾಂಡ್ - wtmp ಅನ್ನು ಕಲಿಯಿರಿ

ಹೆಸರು

utmp, wtmp - ಲಾಗಿನ್ ದಾಖಲೆಗಳು

ಸಾರಾಂಶ

# ಸೇರಿವೆ

ವಿವರಣೆ

ಪ್ರಸ್ತುತ ಸಿಸ್ಟಮ್ ಅನ್ನು ಬಳಸುತ್ತಿರುವವರ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ಕಂಡುಹಿಡಿಯಲು utmp ಫೈಲ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ. ಪ್ರಸ್ತುತ ವ್ಯವಸ್ಥೆಯನ್ನು ಬಳಸುತ್ತಿರುವ ಹೆಚ್ಚಿನ ಬಳಕೆದಾರರು ಇರಬಹುದು, ಏಕೆಂದರೆ ಎಲ್ಲಾ ಪ್ರೋಗ್ರಾಂಗಳು utmp ಲಾಗಿಂಗ್ ಅನ್ನು ಬಳಸುವುದಿಲ್ಲ.

ಎಚ್ಚರಿಕೆ: utmp ಅನ್ನು ಬರೆಯಲಾಗದು, ಏಕೆಂದರೆ ಅನೇಕ ಸಿಸ್ಟಮ್ ಪ್ರೋಗ್ರಾಂಗಳು (ಮೂರ್ಖತನದಿಂದ) ಅದರ ಸಮಗ್ರತೆಯನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ. ನೀವು ಯಾವುದೇ ಬಳಕೆದಾರರಿಗೆ utmp ಬರೆಯಬಹುದಾದವರಾಗಿದ್ದರೆ ಸಿಸ್ಟಮ್ ಲಾಗ್ಫೈಲ್ಗಳು ಮತ್ತು ಸಿಸ್ಟಮ್ ಫೈಲ್ಗಳ ಮಾರ್ಪಾಡುಗಳನ್ನು ನೀವು ಎದುರಿಸಬೇಕಾಗುತ್ತದೆ.

ಕಡತವು ಈ ಕೆಳಗಿನ ರಚನೆಯೊಂದಿಗೆ ಸೇರಿರುವ ನಮೂದುಗಳ ಒಂದು ಅನುಕ್ರಮವಾಗಿದೆ, ಇದರಲ್ಲಿ ಸೇರಿವೆ ಫೈಲ್ (ಇದು ಕೇವಲ ಸುಮಾರು ಹಲವಾರು ವ್ಯಾಖ್ಯಾನಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ; ವಿವರಗಳನ್ನು libc ಆವೃತ್ತಿಯ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದೆ):

# UUUNKNOWN 0 # ವ್ಯಾಖ್ಯಾನಿಸಲು RUN_LVL 1 # ವ್ಯಾಖ್ಯಾನಿಸಲು BOOT_TIME 2 # ವ್ಯಾಖ್ಯಾನಿಸಲು NEW_TIME 3 # OLD_TIME 4 # ವ್ಯಾಖ್ಯಾನಿಸಲು INLDT_ROCESS 5 # LOGIN_PROCESS 6 # ವ್ಯಾಖ್ಯಾನಿಸಲು USER_PROCESS 7 # DEAD_PROCESS 8 ವ್ಯಾಖ್ಯಾನಿಸಲು DEC # 8 ವ್ಯಾಖ್ಯಾನಿಸಲು ವ್ಯಾಖ್ಯಾನ # 8 ವ್ಯಾಖ್ಯಾನಿಸಲು UT_LINESIZE 12 # UT_NAMESIZE ವ್ಯಾಖ್ಯಾನಿಸಲು 32 # ವ್ಯಾಖ್ಯಾನಿಸಲು UT_HOSTSIZE 256 struct exit_status {short int e_termination; / * ಪ್ರಕ್ರಿಯೆ ಮುಕ್ತಾಯ ಸ್ಥಿತಿ. * / ಸಣ್ಣ ಇಂಟ್ ಇ_ಎಕ್ಸ್ಟ್; / * ಪ್ರಕ್ರಿಯೆ ನಿರ್ಗಮನ ಸ್ಥಿತಿ. * /}; struct utmp {short ut_type; / * ಲಾಗಿನ್ ಪ್ರಕಾರ * / pid_t ut_pid; / * ಲಾಗಿನ್ ಪ್ರಕ್ರಿಯೆಯ * ಪಿಡ್ * / ಚಾರ್ ut_line [UT_LINESIZE]; / * ಸಾಧನದ ಹೆಸರು tty - "/ dev /" * / char ut_id [4]; / * init ಐಡಿ ಅಥವಾ ಸಂಕ್ಷೇಪಣ. ttyname * / char ut_user [UT_NAMESIZE]; / * ಬಳಕೆದಾರ ಹೆಸರು * / ಚಾರ್ ut_host [UT_HOSTSIZE]; ದೂರಸ್ಥ ಲಾಗಿನ್ಗೆ / * ಹೋಸ್ಟ್ಹೆಸರು * / struct exit_status ut_exit; / * ಪ್ರಕ್ರಿಯೆಯ ನಿರ್ಗಮನ ಸ್ಥಿತಿ DEAD_PROCESS ಎಂದು ಗುರುತಿಸಲಾಗಿದೆ. * / ದೀರ್ಘ ut_session; / * ಅಧಿವೇಶನ ಐಡಿ, * / ಸ್ಟ್ರಾಕ್ಟ್ ಟೈಮ್ವಲ್ ut_tv ವಿಂಡ್ ಬಳಸಲಾಗುತ್ತದೆ; / * ಸಮಯ ಪ್ರವೇಶವನ್ನು ಮಾಡಲಾಯಿತು. * / int32_t ut_addr_v6 [4]; / * ರಿಮೋಟ್ ಹೋಸ್ಟ್ನ IP ವಿಳಾಸ. * / ಚಾರ್ ಪ್ಯಾಡ್ [20]; / * ಭವಿಷ್ಯದ ಬಳಕೆಗಾಗಿ ಕಾಯ್ದಿರಿಸಲಾಗಿದೆ. * /}; / * ಬ್ಯಾಕ್ವರ್ಡ್ ಹೊಂದಾಣಿಕೆ ಹಾಕ್ಸ್. * / # ut_name ut_user #ifndef _NO_UT_TIME # ut_time ut_tv.tv_sec #endif # ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು ut_xtime ut_tv.tv_sec # ut_addr ut_addr_v6 ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು [0]

ಈ ರಚನೆಯು ಬಳಕೆದಾರರ ಟರ್ಮಿನಲ್, ಬಳಕೆದಾರರ ಲಾಗಿನ್ ಹೆಸರು, ಮತ್ತು ಸಮಯದ (2) ರೂಪದಲ್ಲಿ ಲಾಗಿನ್ ಸಮಯದೊಂದಿಗೆ ಸಂಬಂಧಿಸಿದ ವಿಶೇಷ ಕಡತದ ಹೆಸರನ್ನು ನೀಡುತ್ತದೆ. ಕ್ಷೇತ್ರದ ಗಾತ್ರಕ್ಕಿಂತ ಚಿಕ್ಕದಾಗಿದ್ದರೆ ಸ್ಟ್ರಿಂಗ್ ಜಾಗವನ್ನು '\ 0' ದಿಂದ ನಿಲ್ಲಿಸಲಾಗುತ್ತದೆ.

ಮೊದಲ ನಮೂದುಗಳು init (8) ಪ್ರಕ್ರಿಯೆ inittab (5) ನಿಂದ ಫಲಿತಾಂಶವನ್ನು ರಚಿಸಿದವು . ಒಂದು ನಮೂದನ್ನು ಸಂಸ್ಕರಿಸುವ ಮೊದಲು, ಆದರೂ, ut_type ಅನ್ನು DEAD_PROCESS ಅಥವಾ RUN_LVL ಅಲ್ಲದೆ PID ut_pid ಯೊಂದಿಗಿನ ಯಾವುದೇ ಪ್ರಕ್ರಿಯೆಯು ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ ಪ್ರತಿ ದಾಖಲೆಯಿಲ್ಲದೆ , ut_type ಅನ್ನು DEAD_PROCESS ಗೆ ಹೊಂದಿಸುವ ಮೂಲಕ , ut_user , ut_host , ಮತ್ತು ut_time ಅನ್ನು ಶೂನ್ಯ ಬೈಟ್ಗಳೊಂದಿಗೆ ಹೊಂದಿಸುವಾಗ init (8) ಅನ್ನು utpt ಅನ್ನು ಸ್ವಚ್ಛಗೊಳಿಸುತ್ತದೆ. ಅಗತ್ಯವಾದ ut_id ಯೊಂದಿಗೆ ಯಾವುದೇ ಖಾಲಿ ದಾಖಲೆಯನ್ನು ಕಂಡುಹಿಡಿಯಲಾಗದಿದ್ದರೆ, init ಹೊಸದನ್ನು ರಚಿಸುತ್ತದೆ. ಇದು inittab, ut_pid ಮತ್ತು ut_time ನಿಂದ ಪ್ರಸ್ತುತ ಮೌಲ್ಯಗಳಿಗೆ ut_id ಅನ್ನು ಹೊಂದಿಸುತ್ತದೆ ಮತ್ತು IN_T_PROCESS ಗೆ ut_type ಅನ್ನು ಹೊಂದಿಸುತ್ತದೆ .

getty (8) ಪಿಡ್ನ ಪ್ರವೇಶವನ್ನು ಪತ್ತೆ ಮಾಡುತ್ತದೆ, LOGIN_PROCESS ಗೆ ut_type ಅನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ , ut_time ಅನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ , ut_line ಅನ್ನು ಹೊಂದಿಸುತ್ತದೆ, ಮತ್ತು ಸಂಪರ್ಕವನ್ನು ಸ್ಥಾಪಿಸಲು ಕಾಯುತ್ತದೆ. ಲಾಗಿನ್ (8), ಒಂದು ಬಳಕೆದಾರ ದೃಢೀಕರಿಸಲ್ಪಟ್ಟ ನಂತರ, USER_PROCESS ಗೆ ut_type ಬದಲಾಯಿಸುತ್ತದೆ, ut_time ಅನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ, ಮತ್ತು ut_host ಮತ್ತು ut_addr ಅನ್ನು ಹೊಂದಿಸುತ್ತದೆ. ಗೆಟ್ಟಿ (8) ಮತ್ತು ಲಾಗಿನ್ (8) ಅನ್ನು ಅವಲಂಬಿಸಿ, ದಾಖಲೆಗಳನ್ನು ಸೂಕ್ತವಾದ ut_pid ಬದಲಿಗೆ ut_line ಮೂಲಕ ಸ್ಥಾಪಿಸಬಹುದು .

ಒಂದು ಪ್ರಕ್ರಿಯೆಯು ನಿರ್ಗಮಿಸಿದೆ ಎಂದು init (8) ಕಂಡುಕೊಳ್ಳುತ್ತದೆ, ಅದು uttp ಪ್ರವೇಶವನ್ನು ut_pid ಮೂಲಕ ಪತ್ತೆ ಮಾಡುತ್ತದೆ , ut_type ಅನ್ನು DEAD_PROCESS ಗೆ ಹೊಂದಿಸುತ್ತದೆ ಮತ್ತು ut_user , ut_host ಮತ್ತು ut_time ಅನ್ನು ಶೂನ್ಯ ಬೈಟ್ಗಳೊಂದಿಗೆ ತೆರವುಗೊಳಿಸುತ್ತದೆ.

Xterm (1) ಮತ್ತು ಇತರ ಟರ್ಮಿನಲ್ ಎಮ್ಯುಲೇಟರ್ಗಳು ನೇರವಾಗಿ USER_PROCESS ರೆಕಾರ್ಡ್ ಅನ್ನು ರಚಿಸಿ ಮತ್ತು / dev / ttyp % c ನ ಕೊನೆಯ ಎರಡು ಅಕ್ಷರಗಳನ್ನು ಬಳಸುವ ಮೂಲಕ ಅಥವಾ / dev / pts / % d ಗಾಗಿ p % d ಅನ್ನು ಬಳಸಿಕೊಂಡು ut_id ಅನ್ನು ಉತ್ಪಾದಿಸುತ್ತವೆ. ಈ ಐಡಿಗಾಗಿ DEAD_PROCESS ಅನ್ನು ಅವರು ಕಂಡುಕೊಂಡರೆ, ಅವರು ಅದನ್ನು ಮರುಬಳಕೆ ಮಾಡುತ್ತಾರೆ, ಇಲ್ಲದಿದ್ದರೆ ಅವರು ಹೊಸ ನಮೂದನ್ನು ರಚಿಸುತ್ತಾರೆ. ಅವರು ಸಾಧ್ಯವಾದರೆ, ನಿರ್ಗಮಿಸುವ ಸಂದರ್ಭದಲ್ಲಿ ಅವರು DEAD_PROCESS ಎಂದು ಗುರುತಿಸುತ್ತಾರೆ ಮತ್ತು ಅವರು ಶೂನ್ಯ ut_line , ut_time , ut_user ಮತ್ತು ut_host ಎಂದು ಸಲಹೆ ನೀಡುತ್ತಾರೆ.

xdm (8) ಒಂದು utmp ರೆಕಾರ್ಡ್ ಅನ್ನು ರಚಿಸಬಾರದು, ಏಕೆಂದರೆ ನಿಯೋಜಿತ ಟರ್ಮಿನಲ್ ಇರುವುದಿಲ್ಲ. ಇದು ರಚಿಸುವುದನ್ನು ಬಿಡುವುದರಿಂದ 'ಫಿಂಗರ್: stat /dev/machine.dom ಗೆ ಸಾಧ್ಯವಿಲ್ಲ' ಎಂದು ದೋಷಗಳು ಉಂಟಾಗುತ್ತವೆ. ಇದು ftpd (8) ನಂತೆಯೇ , wtmp ನಮೂದುಗಳನ್ನು ರಚಿಸಬೇಕು.

ಟೆಲ್ ನೆಟ್ಡ್ (8) ಒಂದು LOGIN_PROCESS ನಮೂದನ್ನು ಹೊಂದಿಸುತ್ತದೆ ಮತ್ತು ಉಳಿದಂತೆ (8) ಪ್ರವೇಶಿಸಲು ಬಿಡುತ್ತದೆ. ಟೆಲ್ನೆಟ್ ಅಧಿವೇಶನ ಕೊನೆಗೊಂಡ ನಂತರ, ಟೆಲ್ ನೆಟ್ಡ್ (8) ವಿವರಿಸಿದ ರೀತಿಯಲ್ಲಿ utmp ಅನ್ನು ತೆರವುಗೊಳಿಸುತ್ತದೆ.

Wtmp ಕಡತವು ಎಲ್ಲಾ ಲಾಗಿನ್ನನ್ನು ಮತ್ತು ದಾಖಲೆಗಳನ್ನು ದಾಖಲಿಸುತ್ತದೆ. ಇದರ ಸ್ವರೂಪವು UTM ನಂತೆಯೇ ಇದೆ, ಶೂನ್ಯ ಬಳಕೆದಾರರ ಹೆಸರು ಸಂಬಂಧಿಸಿದ ಟರ್ಮಿನಲ್ನಲ್ಲಿ ಲಾಗ್ಔಟ್ ಅನ್ನು ಸೂಚಿಸುತ್ತದೆ. ಇದಲ್ಲದೆ, ಬಳಕೆದಾರ ಹೆಸರು "shutdown" ಅಥವಾ "reboot " ನೊಂದಿಗೆ ಟರ್ಮಿನಲ್ ಹೆಸರು " ಸಿಸ್ಟಮ್ ಸ್ಥಗಿತಗೊಳಿಸುವಿಕೆ ಅಥವಾ ರೀಬೂಟ್ ಮತ್ತು ಟರ್ಮಿನಲ್ ಹೆಸರುಗಳ ಜೋಡಿ " | " / "}" ದಿನಾಂಕವನ್ನು (1) ಬದಲಾಯಿಸಿದಾಗ ಹಳೆಯ / ಹೊಸ ಸಿಸ್ಟಮ್ ಸಮಯವನ್ನು ದಾಖಲಿಸುತ್ತದೆ. wtmp ಲಾಗಿನ್ (1), init (1), ಮತ್ತು ಗೆಟ್ಟಿ (1) ನ ಕೆಲವು ಆವೃತ್ತಿಗಳಿಂದ ನಿರ್ವಹಿಸಲ್ಪಡುತ್ತದೆ. ಈ ಪ್ರೋಗ್ರಾಂಗಳೆಲ್ಲವೂ ಫೈಲ್ ಅನ್ನು ರಚಿಸುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ ಅದನ್ನು ತೆಗೆದುಹಾಕಿದರೆ, ರೆಕಾರ್ಡ್ ಕೀಪಿಂಗ್ ಅನ್ನು ಆಫ್ ಮಾಡಲಾಗಿದೆ.