Leksykon IT › Bezpieczeństwo › iceauth

iceauth

Bezpieczeństwo Svenska → Zaktualizowano: 2026-10-10
Więcej informacji
Autor
Ralph Mor, X Consortium
Rok
Typ
Narzędzie do plików autoryzacji ICE
Licencja
MIT
Kod źródłowy
gitlab.freedesktop.org

Bliźniak Xauth dla połączeń ICE: edytuje plik ciasteczek, które menedżery sesji i ich klienci pokazują sobie nawzajem — najlepiej znany z komunikatu o błędzie, który blokował logowanie do GNOME.

ICE jest odrębną warstwą transportową, więc dostała też własny plik autoryzacji. Każdy wpis w ~/.ICEauthority zawiera protokół — ICE dla samego połączenia albo XSMP dla podprotokołu — identyfikator sieciowy nasłuchującego gniazda, zwykle w postaci local/hostname:/tmp/.ICE-unix/PID, metodę MIT-MAGIC-COOKIE-1 oraz samo ciasteczko. Format to w zasadzie Xauthority z jedną dodatkową kolumną, a iceauth, napisany przez Ralpha Mora dla X11R6 w 1994 roku, jest kopią xauth z tymi samymi poleceniami: list, add, remove, extract i merge, interaktywnie lub z wiersza poleceń. Zapisuje menedżer sesji: xsm, ksmserver i gnome-session wstawiają swoje ciasteczko przy otwieraniu gniazda, a każdy klient łączący się przez libSM czyta ten sam plik, aby móc odpowiedzieć.

Prawie nikt nie uruchamia iceauth ręcznie, ale sam plik potrafił dać o sobie znać. Program graficzny uruchomiony przez sudo mógł zostawić ~/.ICEauthority jako własność roota, a przy następnym logowaniu gnome-session nie mógł zapisać swojego wpisu, poddawał się i od razu wylogowywał — „Could not update ICEauthority file” przez lata należało do najczęstszych sposobów na zamknięcie sobie dostępu do pulpitu GNOME, a na drugim miejscu był pełny katalog domowy. Rozwiązaniem było przeniesienie pliku: zmienna środowiskowa ICEAUTHORITY wskazuje dziś zwykle na $XDG_RUNTIME_DIR, który jest czyszczony przy wylogowaniu i nigdy nie odziedziczy złego właściciela, podczas gdy plik w katalogu domowym leży pusty.

← Wróć do leksykonu