Kucetywa ukuba uyeke ukusebenzisa i-utmp ukususa i-Glibc ye-Y2038 ingxaki

UThorsten Kukuk, inkokeli yeqela lophuhliso lwetekhnoloji yexesha elizayo kwi-SUSE (iQela leTekhnoloji yekamva, liphuhlisa i-OpenSUSE MicroOS kunye ne-SLE Micro), owayekhokela iprojekthi ye-SUSE LINUX Enterprise Server iminyaka eyi-10, ucebise ukulahla ifayile / var / run / utmp kunikezelo ukujongana ngokupheleleyo nengxaki ye-2038 kwi-Glibc. Zonke izicelo ezisebenzisa i-utmp, i-wtmp kunye ne-lastlog zicetywa ukuba ziguqulwe ukuze zifumane uluhlu lwabasebenzisi abasebenzisa i-systemd-logind.

Ngomhla we-19 kaJanuwari 2038, izixhobo zokubala zexesha leepochal ezichazwe luhlobo lwe-32-bit time_t ziya kuphuphuma. I-Glibc, nangona izisa uhlobo lwe-64-bit time_t, iyaqhubeka isebenzisa uhlobo lwe-32-bit time_t kwezinye iimeko kwiiplatifti ze-64-bit ukugcina ukuhambelana nezicelo ze-32-bit yendawo yomsebenzisi. Enye imeko enjalo yifayile / var/run/utmp, egcina idatha malunga nabasebenzisi abangene kwinkqubo. Indawo yexesha kwi-utmp icacisiwe kusetyenziswa i-32-bit time_t ixabiso.

Ukutshintsha ngokulula indawo yexesha kwi-utmp ukusuka kwi-32-bit ukuya kuhlobo lwe-64-bit akuyi kusebenza, njengoko oku kuyakukhokelela kutshintsho kwi-Glibc ABI (uhlobo luya kutshintsha kwimisebenzi efana nokungena (), getutid () kunye ne-utmpname. ()) kunye nokwaphula ukuhambelana nezicelo ezisebenzisa utmp, ukuquka w, ngubani, ixesha eliphezulu, ukungena, su, sudo, useradd, systemd, sysvinit, tcsh, xterm bonisa abaphathi, emacs, openssh, qemu, samba, rsyslog, njl. Ngenxa yobuninzi bemigibe enokwenzeka kunye nobunzima, umbono wokutshintsha ixesha_t uhlobo kwi-utmp wakhatywa ngabaphuhlisi beGlibc. Ngesizathu esifanayo, ukhetho lokusebenzisa indawo ekhoyo yamahhala kwisakhiwo se-utmp ukongeza ixesha elongezelelweyo le-64-bit yalahlwa.

Ukongeza, ukutshintsha uhlobo lwebit ubunzulu kwi-utmp aluzisombululi ezinye iingxaki ezikhoyo, endingathanda ukuzisusa. Umzekelo, ukubhalela utmp kufuna iimvume ezikhethekileyo, ezifuna iinkqubo zinikwe amalungelo awongezelelweyo. Enye ingxaki kukuba ulwakhiwo lwe-utmp luvumela abasebenzisi basekhaya ukuba baqhube uhlaselo lwe-DoS, okukhokelela ekuphazamisekeni kwenkonzo ye-utmp ngokusebenzisa ukutshixa kweefayile, okwenza kube nzima ukuqiniseka ukuba imixholo ye-utmp ibonisa imeko yokwenyani kwinkqubo. Kwacetywa ukuba kusetyenziswe inkqubo yangasemva eyongezelelweyo ukusingatha ufikelelo kwi-utmp, kodwa kwimisebenzi enjalo sele kukho inkqubo ye-systemd-logind kwaye ukuphehlelela enye inkqubo ekhethekileyo akucebisi (izicelo kuya kufuneka zidlulisele idatha kubaphathi ababini ngaxeshanye).

Kwangaxeshanye, naxa usombulula ingxaki ngohlaselo lwe-DoS, imixholo ye-utmp ihlala inolwazi kwaye ayiqinisekisi ukubonakaliswa kokwenyani. Umzekelo, ii-emulator ezahlukeneyo kunye ne-terminal multiplexers zibonakalisa imeko yazo ngokwahlukileyo-ukundulula iitheminali ezintlanu ze-GNOME kuya kubangela ukuba umsebenzisi omnye aboniswe kwi-utmp, kwaye ukundululwa kwe-konsole ezintlanu okanye ii-terminal ze-xterm kwi-KDE kuya kubangela ezintandathu. Ukuziphatha kwesikrini kunye ne-tmux kuhluke ngokufanayo: kwimeko yokuqala, iseshoni nganye ibalwa njengomsebenzisi ohlukeneyo, kwaye okwesibini, umsebenzisi omnye kuphela uboniswa kuzo zonke iiseshoni.

Ngenxa yoko, njengesona sisombululo silula, kucetywa ukuba kudluliselwe zonke izicelo zokusebenzisa inkonzo esele ikhona ye-systemd-logind kwaye, emva kokuba kungekho zinkqubo zangoku ezifikelela kwi-utmp, yeka ukurekhoda kwi-utmp. Ukutshintsha i-wtmp, kucetywa ukuba kulungiswe ujongano lwesoftware yokubhala kunye nokufunda ulwazi malunga nabasebenzisi abasebenzisa i-systemd-journald. I-codebase yokukhutshwa okulandelayo kwe-systemd 254 sele iquka ukusebenza okufunekayo ukubonelela ngedatha yokutshintshwa kwe-utmp nge-libsystemd usebenzisa i-sd-login.h API okanye nge-DBUS.

umthombo: opennet.ru

Yongeza izimvo