iceauth
Подробнее
- Создатель
- Ральф Мор, X Consortium
- Год
- 1994 (X11R6)
- Тип
- Утилита файла авторизации для ICE
- Лицензия
- MIT
- Исходный код
- gitlab.freedesktop.org
Близнец Xauth для соединений ICE: правит файл с cookie, которые менеджеры сеансов и их клиенты предъявляют друг другу, — больше всего известен по сообщению об ошибке, не пускавшему в GNOME.
ICE — самостоятельный транспортный уровень, и файл авторизации у него тоже свой. Каждая запись в ~/.ICEauthority содержит протокол (ICE для самого соединения или XSMP для подпротокола), сетевой идентификатор слушающего сокета (обычно local/hostname:/tmp/.ICE-unix/PID), метод MIT-MAGIC-COOKIE-1 и сам cookie. Формат — по сути Xauthority с ещё одним столбцом, а iceauth, написанный Ральфом Мором для X11R6 в 1994 году, — копия xauth с теми же командами: list, add, remove, extract и merge, в интерактивном режиме или из командной строки. Запись делает менеджер сеансов: xsm, ksmserver и gnome-session добавляют свой cookie при открытии сокета, а каждый клиент, подключающийся через libSM, читает тот же файл, чтобы ответить.
Вручную iceauth запускают почти никогда, но файл о себе напомнил. sudo, запустивший графическую программу, мог оставить ~/.ICEauthority во владении root, и при следующем входе gnome-session не мог записать свою запись, сдавался и тут же выходил обратно: «Could not update ICEauthority file» годами оставалось одним из самых частых способов запереть себя за дверью GNOME, а переполненный домашний каталог шёл вторым. Лечение — переместить файл: переменная ICEAUTHORITY теперь обычно указывает в $XDG_RUNTIME_DIR, который стирается при выходе и не может унаследовать неправильного владельца, а файл в домашнем каталоге лежит пустой.