fly-dm greeter: показать host_id на экране входа
tessera отправляет короткую идентификацию машины в PAM в
начале pam_sm_authenticate:
Этот банкомат: host_id=a1b2c3d4 (source=MachineId)Это PAM_TEXT_INFO-сообщение. Полный host_id_hash остаётся в
syslog: journalctl -t tessera | grep host_identity. Цель —
оператор/инженер у терминала видит, к какому host_id привязан
сертификат, не заходя в shell.
Где сообщение показывается без дополнительной настройки:
- TTY-login (
/etc/pam.d/loginна консоли); - sshd interactive (
/etc/pam.d/sshd); - sudo (
/etc/pam.d/sudo).
Где нужны настройки — fly-dm (Astra GUI display manager): см. ниже.
Проблема fly-dm
Заголовок раздела «Проблема fly-dm»На Astra с МКЦ-3 (production-банкоматы) fly-dm под темой
fly-modern игнорирует PAM-сообщения и GreetString —
hardcoded’но рендерит в headline place строку «Усиленный уровень
защищенности» из /usr/share/locale/ru/LC_MESSAGES/fly-dm_greet_modern.mo
(определяется по PARSEC API).
История попыток (для контекста):
| Версия | Подход | Результат |
|---|---|---|
| 0.3.15 | greeter-show-messages = true в fly-dmrc | KDM/LightDM legacy key, fly-qdm 2.15+ не парсит. Cargo-cult. |
| 0.3.16 | /etc/X11/fly-dm/override/GreetString.desktop | На fly-modern МКЦ-3 GreetString hardcode’ом замещается. No-op. |
| 0.3.19 | Wallpaper writer — впечатать в JPG-фон | Работает. |
Workaround: wallpaper writer (0.3.19+)
Заголовок раздела «Workaround: wallpaper writer (0.3.19+)»Идея: впечатать host_id прямо в JPG, на который смотрит
[background].path в /etc/X11/fly-dm/fly-modern/settings.ini.
Daemon делает это автоматически, без зависимостей от темы.
Включение
Заголовок раздела «Включение»[fly_dm_greeter]update_wallpaper = trueRestart:
sudo systemctl restart tesseraПоведение
Заголовок раздела «Поведение»При каждом старте tessera.service:
- Первый раз:
cp wallpaper_target → wallpaper_backup(one-time снимок оригинала). Дальнейшие правки источника НЕ перезаписывают backup — изменение оригинала фона требует ручного удаленияwallpaper_backup. - Открывает
wallpaper_backupкак source-изображение. - Рендерит template (
template_ru/template_enпо locale) с подстановкой:{host_id_short}— первые 8 hex символов sha256;{source}— имя источника (MachineId,DmiBoardSerial…);%n— hostname машины.
- Atomic save →
wallpaper_target(tmpfile + rename).
Полный набор опций
Заголовок раздела «Полный набор опций»[fly_dm_greeter]update_wallpaper = truewallpaper_target = "/usr/share/wallpapers/fly-default-light.jpg"wallpaper_backup = "/var/lib/tessera/wallpaper.orig.jpg"wallpaper_font = "/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf"wallpaper_font_size = 64wallpaper_text_color = "#000000"wallpaper_gravity = "south" # north | south | east | west | centerwallpaper_offset_x = 0 # пиксели от gravity-anchor по горизонталиwallpaper_offset_y = 120 # пиксели от gravity-anchor (для south — вверх)template_ru = "Банкомат %n host_id={host_id_short} ({source})"template_en = "ATM %n host_id={host_id_short} ({source})"Реализация
Заголовок раздела «Реализация»Pure Rust: crate image для JPG I/O + ab_glyph для растеризации
шрифта. Без native deps (no ImageMagick / no Pango). Failures →
log-and-continue, auth-flow никогда не блокируется ошибкой
wallpaper writer’а.
Видимость текста: settings.ini
Заголовок раздела «Видимость текста: settings.ini»Daemon не редактирует settings.ini — этим управляет
оператор/Ansible. Если на хосте включён сильный color_overlay или
blur — текст может быть невидим.
Baseline для production-банкомата:
[background]path=/usr/share/wallpapers/fly-default-light.jpgcolor_overlay=0,0,0,30
[background][blur]enable=falseПосле правки settings.ini:
sudo systemctl restart fly-dmПосле правки [fly_dm_greeter] в config.toml:
sudo systemctl restart tesseraVerification
Заголовок раздела «Verification»После рестарта daemon’а:
sudo journalctl -u tessera -g fly_dm_greeter -n 20Ожидаемая запись — одна INFO fly-dm wallpaper update finished
(target tessera.fly_dm_greeter) с полем outcome: Wrote { backed_up: true } на первом запуске, дальше backed_up: false;
Disabled — если update_wallpaper = false. Любая ошибка (нет
прав, битый JPG, отсутствующий шрифт — поставить
fonts-dejavu-core) — WARN fly-dm wallpaper update failed (continuing), демон продолжает работу.
Затем визуально на экране login fly-dm: внизу должна появиться
строка Банкомат astra184 host_id=a1b2c3d4 (DmiBoardSerial).
Troubleshooting
Заголовок раздела «Troubleshooting»См. troubleshooting.md раздел «fly-dm не показывает host_id на экране входа».
См. также
Заголовок раздела «См. также»- install.md — установка
tesseraцеликом. - configuration.md — справочник по
config.toml. - clone-image.md §2.4 — настройка wallpaper на эталоне перед снятием образа.