Как сделать скриншот экрана входа в Linux
Важное примечание: многие современные дистрибутивы по умолчанию работают на Wayland (например, GNOME в Ubuntu). Методы ниже ориентированы на X11/Xorg и логин-менеджеры, которые используют X-сессии.
Зачем это нужно
Скриншот экрана входа полезен для документации, бэкапа визуальных настроек, демонстрации кастомных тем или для отчёта о баге в дисплей-менеджере. Обычные инструменты снятия экрана работают в пользовательской сессии и не могут захватить экран до входа.
Основные подходы
- Виртуальная машина — самый простой и безопасный путь: запустите образ с тем же окружением и снимите экран средствами гипервизора.
- Скрипт, работающий на хосте — универсальный метод для X11: подключается к корню X-сервера логин-менеджера и сохраняет изображение. Требует прав root и доступа к файлам XAUTHORITY.
Быстрый вариант: виртуальная машина
Если вам нужно просто получить изображение и вы можете воспроизвести окружение в виртуальной машине (VirtualBox, QEMU/virt-manager и т.д.), используйте встроенные инструменты гипервизора для снятия скриншота. Это не требует вмешательства в реальную систему и работает независимо от Wayland/Xorg.
Метод со скриптом (для X11)
Этот метод захватывает экран логин-менеджера непосредственно из той же машины. Он работает при условии использования X11 (Xorg) и логин-менеджеров, которые хранят XAUTHORITY в общедоступном месте (например, GDM или LightDM). Он не работает под Wayland.
Требования
- Сессия логина использует Xorg, не Wayland.
- Наличие утилиты xwd и ImageMagick (для конвертации форматов).
- Права root для доступа к файлу XAUTHORITY или возможность временно сменить права.
Установка ImageMagick
В Debian/Ubuntu-подобных системах:
sudo apt update
sudo apt install imagemagick x11-appsПакет x11-apps содержит утилиту xwd; в некоторых дистрибутивах xwd может идти в отдельном пакете.
Принцип работы скрипта
- Переключаемся на виртуальную консоль с экраном логина (обычно tty1..tty7).
- Подключаемся к X-серверу логин-менеджера, используя переменные DISPLAY и XAUTHORITY.
- Выполняем xwd -root, результат записываем в файл .xwd.
- Конвертируем .xwd в PNG с помощью convert (ImageMagick).
Пример скрипта для GDM (примерная форма)
Создайте файл, например loginscreen.sh, и сделайте его исполняемым. Путь к XAUTHORITY может быть /var/lib/gdm/:0.Xauth или /var/lib/gdm3/:0.Xauth — проверьте в вашей системе.
#! /bin/bash
# Пример для GDM (отредактируйте путь к XAUTHORITY под вашу систему)
chvt 1
# Используйте правильный DISPLAY и XAUTHORITY. Часто DISPLAY=:0
DISPLAY=:0 XAUTHORITY=/var/lib/gdm3/:0.Xauth xwd -rootПример для LightDM (путь к XAUTHORITY может отличаться):
#! /bin/bash
# Пример для LightDM
chvt 1
DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 xwd -rootПримечание: команда chvt 1 переводит вас на виртуальную консоль, где обычно отображается экран входа; номера консоли зависят от вашей конфигурации (часто экран X находится на tty7 или tty1).
Сделайте скрипт исполняемым:
chmod +x loginscreen.shВыполнение и сохранение вывода
Когда вы увидите экран входа, переключитесь на текстовую консоль (например, Ctrl+Alt+F1 или Ctrl+Alt+F3 — у разных систем по-разному), войдите в свой аккаунт и выполните скрипт.
Важно: простая команда
sudo ./loginscreen.sh > login-screenshot.xwdможет не записать файл с правами root корректно из-за того, что перенаправление выполняется оболочкой текущего пользователя. Надёжный способ — выполнить запись от root через sh -c:
sudo sh -c './loginscreen.sh > /home/youruser/login-screenshot.xwd'Или выполните скрипт без sudo, а внутри скрипта используйте sudo для xwd при необходимости.
Конвертация в PNG и исправление прав
После получения login-screenshot.xwd сконвертируйте его в PNG:
sudo chown youruser:youruser /home/youruser/login-screenshot.xwd
convert /home/youruser/login-screenshot.xwd /home/youruser/login-screenshot.pngПосле этого вернитесь в графическую сессию (обычно Ctrl+Alt+F7 или Ctrl+Alt+F2 — зависит от системы) и откройте PNG.
Когда этот метод не сработает
- Wayland: большинство современных GNOME-сессий по умолчанию используют Wayland, и вышеописанный подход не применим.
- Ограничения прав: если XAUTHORITY защищён и его нельзя прочитать, придётся запускать скрипт от root или изменять права — будьте осторожны с безопасностью.
- Логин-менеджер запускается в нестандартной конфигурации или в контейнере — пути и DISPLAY могут отличаться.
Альтернативные подходы
- Используйте виртуальную машину с копией окружения и снимайте экран средствами гипервизора.
- Используйте аппаратную камеру/телефон — быстро, но не всегда даёт нужное качество.
- Если доступна служба удалённого администрирования (VNC/RDP) и она работает до входа — можно подключиться удалённо и снять скрин.
Ментальные модели и простая эвристика
- Rule of thumb: если вы видите логин-менеджер как X-сессию — xwd + XAUTHORITY сработают. Если вы видите Wayland — переходите на VM/удалённый доступ.
- Всегда проверьте, какой процесс отвечает за дисплей: ps aux | grep -E ‘gdm|gdm3|lightdm|sddm’.
Роль‑ориентированные чек-листы
Администратор:
- Проверить, Xorg или Wayland.
- Найти путь к XAUTHORITY у дисплей-менеджера.
- Подготовить безопасное место для вывода и работы с правами.
Разработчик / Документация:
- Воспроизвести окружение в VM, если требуется повторяемость.
- Сделать скриншот в нескольких разрешениях, если нужна поддержка разных экранов.
Пользователь безопасности:
- Не менять права на системные файлы навсегда.
- Удалять созданные временные файлы с правами root после работы.
Критерии приёмки
- Скриншот показывает полный экран логина без артефактов.
- Файл в формате PNG читается стандартными просмотрщиками.
- Скрипт не оставляет открытых прав доступа на системные файлы.
Типичные ошибки и их исправление
- Проблема: пустой или чёрный файл .xwd. Причина: неверный DISPLAY или XAUTHORITY. Проверьте значения и попробуйте посмотреть процессы GDM/LightDM и их окружение.
- Проблема: перенаправление не сохраняет файл. Решение: используйте sudo sh -c ‘… > file’ или выполните команду от root.
- Проблема: работает в локальной сессии, но не на экране входа. Убедитесь в переключении на правильную виртуальную консоль (Ctrl+Alt+Fx).
Безопасность и приватность
- Логи и файлы XAUTHORITY содержат ключи доступа к X-серверу. Не распространяйте их.
- Если вы временно меняете права доступа — восстановите исходные права сразу после завершения задачи.
Быстрый чек-лист действий (командная последовательность)
- Установить утилиты: sudo apt install imagemagick x11-apps
- Подготовить скрипт loginscreen.sh с корректным XAUTHORITY
- chmod +x loginscreen.sh
- Выйти в экран входа и переключиться в текстовую консоль (Ctrl+Alt+Fx)
- Выполнить: sudo sh -c ‘./loginscreen.sh > /home/youruser/login-screenshot.xwd’
- sudo chown youruser:youruser /home/youruser/login-screenshot.xwd
- convert /home/youruser/login-screenshot.xwd /home/youruser/login-screenshot.png
- Вернуться в графику и проверить PNG
Заключение
Сделать скриншот экрана входа в Linux возможно, но подход зависит от используемой графической подсистемы. Для X11 — надежный и повторяемый путь через xwd и XAUTHORITY. Для Wayland — предпочитайте виртуальную машину, удалённый доступ или специализированные инструменты дисплей-менеджера. Всегда учитывайте безопасность при работе с системными файлами.





Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента