Выполнение исполняемых файлов при подключении или отключении пользователяLink to Выполнение исполняемых файлов при подключении или отключении пользователя

Начиная со STAL версии 2.0 добавлена поддержка выполнения внешних исполняемых файлов, определенных администратором, при:

  • подключении пользователя в сессию;
  • отключении пользователя от сессии;
  • запуске сессии пользователя;
  • закрытии (останове) сессии пользователя.

Для мониторинга перечисленных выше событий существует служба stal-watchdog, запускаемая сразу после установки STAL.

Для выполнения внешних исполняемых файлов (например, xx-scripts.sh) администратору нужно:

  • создать каталог /etc/stal/sessions.d/:
sudo mkdir /etc/stal/sessions.d/
BASH
  • перейти в созданный каталог:
cd /etc/stal/sessions.d/
BASH
  • создать в нем подкаталоги created, connected, disconnected, closed:
sudo mkdir created
sudo mkdir connected
sudo mkdir disconnected
sudo mkdir closed
BASH
  • поместить нужные исполняемые файлы в соответствующие каталоги:
    • для выполнения при подключении пользователя в сессию - /etc/stal/sessions.d/сonnected;
    • для выполнения при отключении пользователя от сессии - /etc/stal/sessions.d/disconnected;
    • для выполнения при запуске сессии пользователя - /etc/stal/sessions.d/created;
    • для выполнения при закрытии (останове) сессии пользователя - /etc/stal/sessions.d/closed.

В исполняемых файлах можно использовать переменные среды, приведенные в таблице.

Переменные среды, доступные для использования в исполняемых файлах

Переменная
Назначение
SESSION_LOGINИмя пользователя
SESSION_HOMEРабочий каталог пользователя
SESSION_XAUTHFILEСлужебная переменная X11 сессии пользователя
SESSION_DISPLAYСлужебная переменная X11 сессии пользователя
SESSION_UIDИдентификатор пользователя
SESSION_GIDИдентификатор группы пользователя
SESSION_SYSTEMD_ID

Идентификатор сессии в системе управления службами systemd.

Программный номер сессии STAL синхронизирован с номером сессии systemd.

Для получения номера сессии можно выполнить команду:

sudo loginctl list-sessions
BASH

Для получения статуса сессии можно выполнить команду:

sudo loginctl session-status <номер сессии>
BASH
SESSION_SEAMLESSРежим seamless 
SESSION_MOUNTEDУказывает, что профиль пользователя смонтирован
SESSION_COUNTSКоличество программных сессий пользователя