Вопрос или проблема
Я пытаюсь включить пользовательские сессии systemd на моем сервере CentOS 7. Все компоненты, кажется, находятся на месте, и я также выполнил loginctl enable-linger <user>
, но у меня нет пользовательской сессии systemd (или сессии D-Bus).
Что мне нужно настроить, чтобы пользовательские сессии systemd запускались вместе с моими SSH-входами и длительными сессиями для пользователей с включенной функцией linger?
Я успешно вижу свою сессию входа с помощью loginctl list-sessions
; однако, с ней не связан процесс пользовательской сессии systemd
, и любая операция systemctl --user
выполняется неудачно.
Думаю, что это ошибка.
Автор начал пользоваться systemd-218 до того, как это заработало для него.
Ответ или решение
Чтобы настроить пользовательские сессии systemd для удаленных входов на CentOS 7, необходимо выполнить ряд настроек и убедиться, что все функциональные компоненты настроены корректно.
-
Обновление пакетов systemd: Во-первых, вам необходимо убедиться, что вы используете версию systemd, в которой исправлены известные проблемы с пользовательскими сессиями. Как вы уже указали, система может не работать на более старых версиях, таких как systemd-205. Рекомендуется обновить до версии не ниже systemd-218, так как в этой версии данная проблема была исправлена. Это можно сделать с помощью команды:
sudo yum update systemd
-
Включение linger для пользователей: Выполнив команду
loginctl enable-linger <user>
, вы активируете возможность запуска пользовательских сервисов после завершения сеанса SSH. Однако это само по себе не создает пользовательскую сессию systemd. Убедитесь, что пользователь, для которого активируется linger, действительно зарегистрирован в системе. -
Проверка конфигурации PAM: Одной из распространенных причин проблем с запуском пользовательских сессий systemd является неверная конфигурация PAM (Pluggable Authentication Modules). Убедитесь, что в настройках PAM активирован modsystemd. Для этого проверьте содержание файла
/etc/pam.d/sshd
и убедитесь, что он содержит строку:session required pam_systemd.so
Это позволит PAM инициализировать пользовательскую сессию systemd при регистрации через SSH.
-
Запуск и проверка пользовательской сессии systemd: После выполнения вышеуказанных шагов попробуйте снова запустить пользовательскую сессию systemd. Подключитесь к серверу через SSH и выполните:
loginctl
Это должно отображать активную сессию.
Для выполнения команд systemd от имени пользователя, например:
systemctl --user status
Если проблема сохраняется, убедитесь, что не нарушены разрешения в директориях домашнего каталога пользователя и выше.
-
Решение возможных проблем с правами: Ошибка "Failed to create root cgroup hierarchy: Permission denied" может возникать из-за ограничений SELinux или других политик системы безопасности. Убедитесь, что SELinux настроен правильно или временно отключите его для тестирования:
setenforce 0
Если это решает вашу проблему, настройте адекватные правила SELinux для постоянного решения.
После выполнения всех вышеуказанных шагов, пользовательские сессии systemd должны корректно запускаться при удаленных входах через SSH. Важно тщательно проверить каждую из конфигураций, чтобы гарантировать успешное разрешение проблемы.