Π’ΠΎΡΡΡΠ΅Π½ ΠΡΠΊΡΠΊ (Thorsten Kukuk), Π»ΠΈΠ΄Π΅Ρ Π³ΡΡΠΏΠΏΡ ΠΏΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Π±ΡΠ΄ΡΡΠ΅Π³ΠΎ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ SUSE (Future Technology Team, ΡΠ°Π·Π²ΠΈΠ²Π°Π΅Ρ openSUSE MicroOS ΠΈ SLE Micro), ΡΠ°Π½Π΅Π΅ 10 Π»Π΅Ρ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΠ²ΡΠΈΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ SUSE LINUX Enterprise Server, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΡΠ°ΠΉΠ»Π° /var/run/utmp Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ 2038 Π³ΠΎΠ΄Π° Π² Glibc. ΠΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ utmp, wtmp ΠΈ lastlog, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ systemd-logind.
19 ΡΠ½Π²Π°ΡΡ 2038 Π³ΠΎΠ΄Π° ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄ΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΡΡΡΠΈΠΊΠΎΠ² ΡΠΏΠΎΡ Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π·Π°Π΄Π°Π½Π½ΡΡ 32-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΌ ΡΠΈΠΏΠΎΠΌ time_t. Π Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ Glibc, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ 64-ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° time_t, Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ 32-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ Π½Π° 64-ΡΠ°Π·ΡΡΠ΄Π½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ 32-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΉ ΡΠΈΠΏ time_t. ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°Π΅Π² ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΉΠ» /var/run/utmp, Ρ ΡΠ°Π½ΡΡΠΈΠΉ Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡ , Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΠΎΠ»Π΅ Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ Π² utmp Π·Π°Π΄Π°ΡΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ 32-ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ time_t.
ΠΡΠΎΡΡΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ»Π΅ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ Π² utmp Ρ 32-ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠ³ΠΎ Π½Π° 64-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΉ ΡΠΈΠΏ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ABI Glibc (ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ ΡΠΈΠΏ Π² ΡΡΠ½ΠΊΡΠΈΡΡ , ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ login(), getutid() ΠΈ utmpname()) ΠΈ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΌΠΈ utmp, Π² ΡΠΈΡΠ»Π΅ ΠΊΠΎΡΠΎΡΡΡ w, who, uptime, login, su, sudo, useradd, systemd, sysvinit, tcsh, xterm Π΄ΠΈΡΠΏΠ»Π΅ΠΉΠ½ΡΠ΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ, emacs, openssh, qemu, samba, rsyslog ΠΈ Ρ.ΠΏ. ΠΠ·-Π·Π° ΠΎΠ±ΠΈΠ»ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΡΡ ΠΊΠ°ΠΌΠ½Π΅ΠΉ ΠΈ ΡΡΡΠ΄ΠΎΡΠΌΠΊΠΎΡΡΠΈ ΠΈΠ΄Π΅Ρ Π·Π°ΠΌΠ΅Π½Ρ Π² utmp ΡΠ°Π·ΡΡΠ΄Π½ΠΎΡΡΠΈ ΡΠΈΠΏΠ° time_t Π±ΡΠ»Π° ΠΎΡΠ²Π΅ΡΠ³Π½ΡΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ Glibc. ΠΠΎ ΡΠΎΠΉ ΠΆΠ΅ ΠΏΡΠΈΡΠΈΠ½Π΅ Π±ΡΠ» ΠΎΡΠ±ΡΠΎΡΠ΅Π½ Π²Π°ΡΠΈΠ°Π½Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅ΡΡΠ΅Π³ΠΎΡΡ Π² ΡΡΡΡΠΊΡΡΡΠ΅ utmp ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ 64-ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ Π΄Π»Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΡΡΠ΄Π½ΠΎΡΡΠΈ ΡΠΈΠΏΠ° Π² utmp Π½Π΅ ΡΠ΅ΡΠ°Π΅Ρ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΎΡ ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΠΊΠΆΠ΅ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π² utmp ΡΡΠ΅Π±ΡΡΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠ°Π²Π°, ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ. ΠΡΡ ΠΎΠ΄Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ²ΡΠ·Π°Π½Π° Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° utmp Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ DoS-Π°ΡΠ°ΠΊ, ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΠΈΡ ΠΊ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΠ²ΠΈΡΠ° utmp ΡΠ΅ΡΠ΅Π· ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΠΌΠΈ Π½Π° ΡΠ°ΠΉΠ», ΠΈΠ·-Π·Π° ΡΠ΅Π³ΠΎ Π½Π΅Π»ΡΠ·Ρ Π±ΡΡΡ ΡΠ²Π΅ΡΠ΅Π½Π½ΡΠΌ, ΡΡΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ utmp ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΠ»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ utmp ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π»ΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠΎΠ½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, Π½ΠΎ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ Π·Π°Π΄Π°Ρ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ systemd-logind ΠΈ Π·Π°ΠΏΡΡΠΊ Π΅ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΡΠΌ (ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ ΠΏΡΠΈΠ΄ΡΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π² Π΄Π²Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°).
ΠΡΠΈ ΡΡΠΎΠΌ Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ DoS-Π°ΡΠ°ΠΊΠ°ΠΌΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ utmp ΠΎΡΡΠ°ΡΡΡΡ Π»ΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠΌ, Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΡΡΠΈΠΌ ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π·Π½ΡΠ΅ ΡΠΌΡΠ»ΡΡΠΎΡΡ ΠΈ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΎΡΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΠΎΠ² ΠΏΠΎ ΡΠ°Π·Π½ΠΎΠΌΡ ΠΎΡΡΠ°ΠΆΠ°ΡΡ ΡΠ²ΠΎΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ — Π·Π°ΠΏΡΡΠΊ ΠΏΡΡΠΈ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΠΎΠ² GNOME ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² utmp ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π° Π·Π°ΠΏΡΡΠΊ ΠΏΡΡΠΈ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΠΎΠ² konsole ΠΈΠ»ΠΈ xterm Π² KDE — ΡΠ΅ΡΡΠΈ. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ screen ΠΈ tmux, Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅Π°Π½Ρ ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π° Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ ΠΎΡΡΠ°ΠΆΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π° Π²ΡΠ΅ ΡΠ΅Π°Π½ΡΡ.
Π ΠΈΡΠΎΠ³Π΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ Π²ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ° systemd-logind ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π½Π΅ ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΡ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΎΠ±ΡΠ°ΡΠ°ΡΡΠΈΡ
ΡΡ ΠΊ utmp, ΠΏΡΠ΅ΠΊΡΠ°ΡΠΈΡΡ Π·Π°ΠΏΠΈΡΡ Π² utmp. ΠΠ»Ρ Π·Π°ΠΌΠ΅Π½Ρ wtmp ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ ΠΈ ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡ
ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ systemd-journald. Π ΠΊΠΎΠ΄ΠΎΠ²ΡΡ Π±Π°Π·Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π²ΡΠΏΡΡΠΊΠ° systemd 254 ΡΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π°ΠΌΠ΅Π½ΡΡΡΠΈΡ
utmp Π΄Π°Π½Π½ΡΡ
ΡΠ΅ΡΠ΅Π· libsystemd Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ API sd-login.h ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· DBUS.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru