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

В 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Количество программных сессий пользователя