Вопрос или проблема
Чтобы воспроизвести это на устройстве Debian, просто выполните команду sudo shutdown -h +5
, после чего подтвердите и заблокируйте устройство.
В окне входа в систему вы получите сообщение:
система завершает работу. непривилегированным пользователям больше не разрешен вход в систему. pam_nologin(8)
К сожалению, это навсегда заблокировало меня и не завершает работу через 5 минут. Единственный способ исправить это — принудительное завершение работы путем удержания кнопки питания.
Я хотел бы иметь доступ на случай, если устройство заблокируется, и желательно, чтобы скрипт завершения работы выполнялся, даже если устройство заблокировано.
Ответ или решение
На устройствах, работающих под управлением Debian, иногда возникает проблема при запланированном завершении работы системы с помощью команды sudo shutdown -h +5
. После выполнения этой команды и блокировки устройства, пользователи сталкиваются с ситуацией, когда при попытке входа появляется сообщение: "system is going down. unprivileged users are not permitted to log in anymore. pam_nologin(8)". Это стало причиной невозможности входа в систему и, в конечном итоге, система не завершает работу через заданные пять минут.
Теория
Основную роль в данном сценарии играет процесс управления завершением работы системы в Unix-подобных системах, таких как Debian. Когда вы используете команду shutdown
, система начинает процесс уведомления всех пользователей и служб о планируемом завершении работы. Использование опции -h
указывает на желание системы выключиться, а +5
сообщает системе, что она должна завершить работу через пять минут после выполнения команды.
Когда команда shutdown
выполняется, она создаёт файл /etc/nologin
, который предотвращает вход обычных пользователей, что объясняет появление сообщения с pam_nologin
.
Пример
Рассмотрим пример выполнения этой команды:
- Вы вводите команду:
sudo shutdown -h +5
. - Система создает файл
/etc/nologin
: Это блокирует входы для всех пользователей, кроме привилегированных, предотвращая любые новые сеансы. Те текущие сессии, как правило, продолжаются без прерываний. - Ожидание завершения: Система должна выключиться через пять минут, но в вашем случае этого не происходит, что может быть связано с различными факторами, включая возможные системные ошибки или проблемы в конфигурации.
Применение
С точки зрения решения проблемы, можно предложить нескольких подходов.
-
Проверка системных журналов: Начните с анализа системных журналов (
/var/log/syslog
или/var/log/messages
), чтобы выявить потенциальные ошибки, препятствующие корректному завершению работы. -
Исправление конфигурации PAM: Используйте временный доступ через аварийный режим или восстановление системы, чтобы изменить конфигурации PAM и устранить последствия от
pam_nologin
. -
Проверка сценариев завершения работы: Убедитесь, что все сценарии завершения (shutdown scripts), которые запускаются на вашей системе, корректно завершают работу и не содержат ошибок, прерывающих процесс завершения работы.
-
Сценарии обхода блокировки: Если необходимо сохранить доступ к устройству после блокировки, можете использовать команду, которая удерживает открытый терминал или выполняет необходимый скрипт с другой привилегированной учётной записи.
Например, можно использовать команду:
sudo shutdown -h +5 & sleep 300; [команда для разблокировки]
Таким образом, у вас будет пять минут до того, как выполняется разблокировка и последующий безопасный выход из системы.
-
Автоматизация и управление сервисами: Если проблема в сервисах, рассмотрите возможность их отключения до завершения работы или перехода на управление через systemd, чтобы более детально контролировать порядок их выполнения и завершения.
-
Аппаратные проверка: Если проблема в железе (например, драйверы ACPI или другие аппаратные компоненты), это также может стоить проанализировать, сравнивая с аналогичными устройствами или путем обновления/переустановки драйверов.
Эти шаги помогут вам не только устранить текущие проблемы с запланированным завершением работы на Debian, но и в дальнейшем более эффективно управлять системой, предотвращая повторные случаи возникновения подобных ситуаций.