Glibc рд▓рд╛рдИ Y2038 рд╕рдорд╕реНрдпрд╛рдмрд╛рдЯ рдЫреБрдЯрдХрд╛рд░рд╛ рджрд┐рди utmp рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдмрдиреНрдж рдЧрд░реНрдиреЗ рдкреНрд░рд╕реНрддрд╛рд╡

рдереЛрд░рд╕реНрдЯреЗрди рдХреБрдХреБрдХ, SUSE (рднрд╡рд┐рд╖реНрдпрдХреЛ рдЯреЗрдХреНрдиреЛрд▓реЛрдЬреА рдЯреЛрд▓реА, openSUSE MicroOS рд░ SLE Micro рдХреЛ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджрдЫ) рдорд╛ рднрд╡рд┐рд╖реНрдпрдХреЛ рдЯреЗрдХреНрдиреЛрд▓реЛрдЬреА рдЯреЛрд▓реАрдХрд╛ рдиреЗрддрд╛, рдЬрд╕рд▓реЗ рдкрд╣рд┐рд▓реЗ 10 рд╡рд░реНрд╖рдХреЛ рд▓рд╛рдЧрд┐ SUSE LINUX рдЗрдиреНрдЯрд░рдкреНрд░рд╛рдЗрдЬ рд╕рд░реНрднрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рдиреЗрддреГрддреНрд╡ рдЧрд░реЗрдХрд╛ рдерд┐рдП, рдорд╛ var/run/utmp рдлрд╛рдЗрд▓рдмрд╛рдЯ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдЙрди рд╕реБрдЭрд╛рд╡ рджрд┐рдПред Glibc рдорд╛ Y2038 рд╕рдорд╕реНрдпрд╛рд▓рд╛рдИ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕рдореНрдмреЛрдзрди рдЧрд░реНрди рд╡рд┐рддрд░рдгрд╣рд░реВред utmp, wtmp, рд░ lastlog рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рд╕рдмреИ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрд▓рд╛рдИ systemd-logind рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рд╛рд░реНрдиреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫред

рдЬрдирд╡рд░реА 19, 2038 рдорд╛, 32-bit time_t рдкреНрд░рдХрд╛рд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ epoch time рдХрд╛рдЙрдиреНрдЯрд░рд╣рд░реВ рдУрднрд░рдлреНрд▓реЛ рд╣реБрдиреЗрдЫрдиреНред Glibc рдорд╛, 64-bit time_t рдкреНрд░рдХрд╛рд░рдХреЛ рдкрд░рд┐рдЪрдпрдХреЛ рдмрд╛рд╡рдЬреБрдж, 32-bit рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛-рд╕реНрдкреЗрд╕ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрд╕рдБрдЧ рдЕрдиреБрдХреВрд▓рддрд╛ рдХрд╛рдпрдо рд░рд╛рдЦреНрди, 64-bit time_t рдкреНрд░рдХрд╛рд░ рдЕрдЭреИ рдкрдирд┐ 32-рдмрд┐рдЯ рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВрдорд╛ рдХреЗрд╣реА рдЕрд╡рд╕реНрдерд╛рдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рдПрдЙрдЯрд╛ рдпрд╕реНрддреЛ рдХреЗрд╕ /var/run/utmp рдлрд╛рдЗрд▓ рд╣реЛ, рдЬрд╕рд▓реЗ рд╣рд╛рд▓ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рд▓рдЧрдЗрди рдЧрд░рд┐рдПрдХрд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдбрд╛рдЯрд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрдЫред utmp рдорд╛ рд╕рдордп рдХреНрд╖реЗрддреНрд░ 32-bit time_t рдорд╛рди рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕реЗрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫред

рдХреЗрд╡рд▓ utmp рдорд╛ 32-рдмрд┐рдЯ рдкреНрд░рдХрд╛рд░рдмрд╛рдЯ 64-рдмрд┐рдЯ рдкреНрд░рдХрд╛рд░рдорд╛ рд╕рдордпрдХреЛ рд╕рд╛рдердорд╛ рдлрд┐рд▓реНрдб рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдирд╛рд▓реЗ рдХрд╛рдо рдЧрд░реНрджреИрди, рдХрд┐рдирдХрд┐ рдпрд╕рд▓реЗ Glibc ABI рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреЗрдЫ (рдкреНрд░рдХрд╛рд░рд▓реЗ рд▓рдЧрдЗрди(), getutid() рд░ utmpname() рдЬрд╕реНрддрд╛ рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреЗрдЫред ) рд░ w, who, uptime, login, su, sudo, useradd, systemd, sysvinit, tcsh, xterm рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рдмрдиреНрдзрдХрд╣рд░реВ, emacs, openssh, qemu, samba, rsyslog, рдЖрджрд┐ рд╕рд╣рд┐рдд utmp рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрд╕рдБрдЧ рдЕрдиреБрдХреВрд▓рддрд╛ рддреЛрдбреНрдиреБрд╣реЛрд╕реНред рд╕рдореНрднрд╛рд╡рд┐рдд рдЧрдбрдмрдбреАрд╣рд░реВ рд░ рд╢реНрд░рдорд┐рдХрддрд╛рдХреЛ рдкреНрд░рд╢рд╕реНрддрддрд╛рдХреЛ рдХрд╛рд░рдг, utmp рдорд╛ time_t рдкреНрд░рдХрд╛рд░рдХреЛ рдмрд┐рдЯ рд▓рдореНрдмрд╛рдЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрдиреЗ рд╡рд┐рдЪрд╛рд░ Glibc рдХреЛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реЗрдХрд╛ рдерд┐рдПред рдПрдЙрдЯреИ рдХрд╛рд░рдгрд▓реЗ, рдердк 64-рдмрд┐рдЯ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдердкреНрди utmp рд╕рдВрд░рдЪрдирд╛рдорд╛ рдЙрдкрд▓рдмреНрдз рдард╛рдЙрдБ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рд╡рд┐рдХрд▓реНрдк рдЫреЛрдбрд┐рдпреЛред

рдердк рд░реВрдкрдорд╛, utmp рдорд╛ рдкреНрд░рдХрд╛рд░рдХреЛ рдмрд┐рдЯ рдЧрд╣рд┐рд░рд╛рдИ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрджрд╛ рдЕрдиреНрдп рдЕрд╡рд╕реНрдерд┐рдд рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрджреИрди, рдЬреБрди рдо рдкрдирд┐ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдЙрди рдЪрд╛рд╣рдиреНрдЫреБред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, utmp рдорд╛ рд▓реЗрдЦреНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╢реЗрд╖ рдЕрдиреБрдорддрд┐рд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджрдЫ, рдЬрд╕рд▓рд╛рдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдорд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрди рдердк рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░рд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджрдЫред рдЕрд░реНрдХреЛ рд╕рдорд╕реНрдпрд╛ рдпреЛ рд╣реЛ рдХрд┐ utmp рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд▓реЗ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ DoS рдЖрдХреНрд░рдордгрд╣рд░реВ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рдЬрд╕рд▓реЗ рдлрд╛рдЗрд▓ рд▓рдХрд╣рд░реВрдХреЛ рд╣реЗрд░рдлреЗрд░ рдорд╛рд░реНрдлрдд utmp рд╕реЗрд╡рд╛ рддреЛрдбреНрдЫ, utmp рдХреЛ рд╕рд╛рдордЧреНрд░реАрд▓реЗ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐рд▓рд╛рдИ рдкреНрд░рддрд┐рдмрд┐рдореНрдмрд┐рдд рдЧрд░реНрджрдЫ рднрдиреЗрд░ рдирд┐рд╢реНрдЪрд┐рдд рд╣реБрди рдЕрд╕рдореНрднрд╡ рдмрдирд╛рдЙрдБрдЫред utmp рдорд╛ рдкрд╣реБрдБрдЪ рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрди рдердк рдкреГрд╖реНрдарднреВрдорд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рддрд░ рддреНрдпрд╕реНрддрд╛ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкрд╣рд┐рд▓реЗ рдиреИ systemd-logind рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЫ рд░ рдЕрд░реНрдХреЛ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реБрд░реБ рдЧрд░реНрди рд╕рд▓реНрд▓рд╛рд╣ рджрд┐рдЗрдБрджреИрди (рдПрдкреНрд▓рд┐рдХреЗрд╢рдирд╣рд░реВрд▓реЗ рдПрдХреИ рд╕рдордпрдорд╛ рджреБрдИ рд╣реНрдпрд╛рдиреНрдбрд▓рд░рд╣рд░реВрдорд╛ рдбрд╛рдЯрд╛ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрдиреБрдкрд░реНрдиреЗрдЫ)ред ред

рдПрдХреИ рд╕рдордпрдорд╛, DoS рдЖрдХреНрд░рдордгрд╣рд░реВрд╕рдБрдЧ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрджрд╛ рдкрдирд┐, utmp рдХреЛ рд╕рд╛рдордЧреНрд░реА рдорд╛рддреНрд░ рд╕реВрдЪрдирд╛рддреНрдордХ рд░рд╣рдиреНрдЫ, рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛рдХреЛ рдкреНрд░рддрд┐рдмрд┐рдореНрдмрдХреЛ рдЧреНрдпрд╛рд░реЗрдиреНрдЯреА рдЧрд░реНрджреИрдиред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╡рд┐рднрд┐рдиреНрди рдЯрд░реНрдорд┐рдирд▓ рдЗрдореБрд▓реЗрдЯрд░рд╣рд░реВ рд░ рдорд▓реНрдЯрд┐рдкреНрд▓реЗрдХреНрд╕рд░рд╣рд░реВрд▓реЗ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдЕрд╡рд╕реНрдерд╛ рдлрд░рдХ рд░реВрдкрдорд╛ рдкреНрд░рддрд┐рдмрд┐рдореНрдмрд┐рдд рдЧрд░реНрджрдЫ - рдкрд╛рдБрдЪрд╡рдЯрд╛ GNOME рдЯрд░реНрдорд┐рдирд▓рд╣рд░реВ рдЪрд▓рд╛рдЙрдБрджрд╛ рдПрдЙрдЯрд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ utmp рдорд╛ рдкреНрд░рддрд┐рдмрд┐рдореНрдмрд┐рдд рд╣реБрдиреЗрдЫ, рдЬрдмрдХрд┐ KDE рдорд╛ рдкрд╛рдБрдЪ рдХрдиреНрд╕реЛрд▓ рд╡рд╛ xterm рдЯрд░реНрдорд┐рдирд▓рд╣рд░реВ рдЪрд▓рд╛рдЙрдБрджрд╛ рдЫрд╡рдЯрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реБрдиреЗрдЫред рддреНрдпрд╕реИрдЧрд░реА, рд╕реНрдХреНрд░рд┐рди рд░ tmux рдХреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдлрд░рдХ рд╣реБрдиреНрдЫ, рдкрд╣рд┐рд▓реЛ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдкреНрд░рддреНрдпреЗрдХ рд╕рддреНрд░рд▓рд╛рдИ рдЫреБрдЯреНрдЯреИ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рд░реВрдкрдорд╛ рдЧрдгрдирд╛ рдЧрд░рд┐рдиреНрдЫ, рд░ рджреЛрд╕реНрд░реЛрдорд╛ рд╕рдмреИ рд╕рддреНрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рддреНрд░ рдПрдХ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рддрд┐рдмрд┐рдореНрдмрд┐рдд рд╣реБрдиреНрдЫред

рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рдирдХреЛ рд░реВрдкрдорд╛, рдкрд╣рд┐рд▓реЗ рдиреИ рдЕрд╡рд╕реНрдерд┐рдд рд╡реИрдХрд▓реНрдкрд┐рдХ systemd-logind рд╕реЗрд╡рд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдмреИ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрди рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫ рд░, utmp рдкрд╣реБрдБрдЪ рдЧрд░реНрдиреЗ рдХреБрдиреИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВ рдирднрдПрдкрдЫрд┐, utmp рдорд╛ рд▓реЗрдЦреНрди рдмрдиреНрдж рдЧрд░реНрдиреБрд╣реЛрд╕реНред wtmp рд▓рд╛рдИ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрди, рдпреЛ systemd-journald рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рд▓реЗрдЦреНрди рд░ рдкрдвреНрдирдХреЛ рд▓рд╛рдЧрд┐ API рд╣рд░реВ рддрдпрд╛рд░ рдЧрд░реНрдиреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫред Systemd 254 рдХреЛ рдЕрд░реНрдХреЛ рд░рд┐рд▓реАрдЬрдХреЛ рд▓рд╛рдЧрд┐ рдХреЛрдбрдмреЗрд╕рд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ sd-login.h API рд╡рд╛ DBUS рдорд╛рд░реНрдлрдд libsystemd рдорд╛рд░реНрдлрдд рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди utmp рдбрд╛рдЯрд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди