Программа loginctl входит в набор утилит systemd, позволяющих управлять системой. Она дает право управлять текущими сессиями пользователей, смотреть список активных пользователей, выполнять блокировку экрана или вообще прерывать сессии, завершать процессы пользователей. Не так давно с этой целью пользователи применяли несколько программ и конфигурационные файлы. Но уже сейчас все нужно собрано в одном месте.
Программа loginctl дает право пользователю управлять всем, что имеет отношение к авторизации пользователей. В документации написано, что программа предназначена для управления менеджером входа в систему systemd-logind.
Утилита управляет:
user) - пользователь, прошедший регистрацию в системе;session) - вход пользователем в систему, каждый вход, за исключением sudo и su, расценивается как новая сессия. Можно пройти авторизацию нескольких TTY, по SSH. Вход в графическом менеджере тоже будет расцениваться как новая сессия;seat) - концепция, позволяющая подключить к PC несколько мониторов или устройств периферии, и использовать его разными юзерами в один момент. Но, как правило, это не используют, и программа отображает только одно рабочее место.Рассмотрим синтаксис и доступные опции loginctl.
Синтаксис программы простой и понятный:
$ loginctl [options] command [arguments]
Вот команды, доступные для использования:
list-sessions – вывести список сессий.
session-status – выводит состояние сессии, дату авторизации, информацию об основных запущенных сервисах и процессах.
show-session – выводит настройки сессии.
activate – позволяет переключиться на указанную сессию.
lock-session – блокирует экран для указанной сессии; если ID сессии не задан, блокирует экран для текущей сессии.
unlock-session – разблокирует экран для указанной сессии.
kill-session – позволяет завершить сессию или отправить определённый сигнал всем процессам.
terminate-session – завершает указанную сессию.
list-users – выводит список пользователей, которые авторизованы в данный момент.
user-status – аналогично session-status, выводит дату авторизации, состояние и все запущенные процессы в виде дерева.
show-user – выводит информацию о пользователе и его текущей сессии без запущенных процессов.
terminate-user – завершает все сессии пользователя и все его процессы.
kill-user – отправляет сигнал всем процессам пользователя, по умолчанию отправляется SIGTERM.
list-seats – вывести список рабочих мест.
seat-status – выводит все процессы, запущенные в рамках указанного рабочего места.
show-seat – выводит настройки рабочего места.
terminate-seat – завершает все процессы рабочего места.
Настойка рабочих мест не станет рассматривать в рамках этого материал. Нет смысла приводить команды. Обращаем ваше внимание, что многие команды смогут исправно функционировать только в случае с графическим интерфейсом, в частности session-lock или session-unlock не поддерживается для TTY или SSH сессий. В следующей материале рассмотрим реальные примеры.