MyTetra Share
Делитесь знаниями!
Проблема запуска скрипта на сервере ALD домена при логине пользователя с нулевой мандатной меткой
Время создания: 23.12.2021 12:35
Автор: xintrea
Текстовые метки: Astra Linux, домен, ALD, вход пользователя, скрипт, запуск
Раздел: Компьютер - Linux - Дистрибутив Astra Linux
Запись: xintrea/mytetra_syncro/master/base/16402521367f19s9a2lm/text.html на raw.github.com

Здесь описана попытка решения проблемы запуска скрипта на сервере ALD домена при логине пользователя с нулевой мандатной меткой.


Проблема описана здесь:



https://forum.astralinux.ru/threads/3430/


На сервере домена ALD имеются директории:


/etc/ald/ald.mac.session.d

/etc/ald/session.d


Судя по файлу README, который в них лежит, в эти директории можно помещать скрипты, которые будут выполняться при логине пользователя в домен:


# Scripts in this directory are executed as root when a user log in

# The username of the user logging out is provided in the $USER environment

# variable.


То есть, скрипты будут выполняться от пользователя ROOT, но в переменной $USER будет находиться имя входящего в домен

пользователя. Однако, если в этих директориях ALD-сервера разместить скрипт loginHandler.sh (задав права 755) с содержимым:


#!/bin/bash

echo "$USER is login" >> /tmp/loginlog.txt


... и попытаться войти в домен каким-либо пользователем, то ничего не происходит, файл /tmp/loginlog.txt не создается, в нем ничего нет. Логин происходит доменным пользователем с нулевой мандатной меткой. Вопрос: что где еще надо докручивать, чтобы выполнялись скрипты при логине пользователя в домен?



Ответа на официальном форуме нет. Ответа в Телеграм-канале пользователей Astra Linux (https://t.me/astralinux_chat) тоже нет. Техподдержка в качестве решения рекомендует обновления, которые в данном случае нельзя накатывать из-за уже прошедшей сертификации.



Возможные зацепки


Упоминание файлов /etc/ald/ald.reset и /etc/ald/ald.session встречаются в следующих библитотеках:



/lib/x86_64-linux-gnu/security

pam_ald_mac.so

pam_ald.so



Рядом с этими строками видны строки:



EnsureU

0000DDD0 73 65 72 00 │ 50 61 6D 53 │ 65 73 73 69 │ 6F 6E 4F 70 │ 65 6E 69 6E │ 67 00 2F 00  ser.PamSessionOpening./.

0000DDE8 50 61 6D 4F │ 70 65 6E 53 │ 65 73 73 69 │ 6F 6E 00 2F │ 65 74 63 2F │ 61 6C 64 2F  PamOpenSession./etc/ald/

0000DE00 61 6C 64 2E │ 73 65 73 73 │ 69 6F 6E 00 │ 43 4C 49 45 │ 4E 54 5F 4D │ 4F 55 4E 54  ald.session


PAM_PARSEC_NOZEROBIND.n

000039A8 6F 6E 65 00 │ 41 4C 44 5F │ 70 61 6D 5F │ 6D 61 63 5F │ 6D 6F 64 75 │ 6C 65 5F 64  one.ALD_pam_mac_module_d

000039C0 61 74 61 00 │ 2F 6D 61 63 │ 00 2F 65 74 │ 63 2F 61 6C │ 64 2F 61 6C │ 64 2E 73 65  ata./mac./etc/ald/ald.se

000039D8 73 73 69 6F │ 6E 00 55 53 │ 45 52 00 77 │ 00 4D 6F 75 │ 6E 74 20 7A │ 65 72 6F 20  ssion.USER.w.Mount zero

000039F0 68 6F 6D 65 │ 20 2E 2E 2E │ 00 45 72 72 │ 6F 72 20 75 │ 6E 6D 6F 75 │ 6E 74 69 6E  home



Строка "PamOpenSession" найдена в:



/usr/lib/x86_64-linux-gnu/ald/config-modules/

libald-cfg-parsec-macc.so



Использование строки "PamSessionOpening" найти не получилось.



Настройки PAM


Библиотеки pam_ald_mac.so и pam_ald.so (в которых есть упоминание /etc/ald/ald.session) прописаны в нескольких конфигах PAM-подсистемы, расположенных в каталоге /etc/pam.d . Пока что неясно, что и куда надо прописать, чтобы произошел вызов скрипта /etc/ald/ald.session при открытии доменной сессии пользователя.


В данный момент неясно, правильно ли написаны библиотеки pam_ald_mac.so и pam_ald.so и вызывают ли они необходимые процедуры при возникновении события создания сессии пользователя.


UPD: модули PAM работают. Однако настройки модулей не соответствуют документации. Решать проблему через техподдержку, расчитывать на переписку в пару месяцев.



Альтернативное решение через распространение документа


Если попытаться решить проблему с помощью механизма распространения конфигурационных файлов в домене ALD (пункт 7.2.4.4 документации РУСБ.10015-01 95 01-1), то будет происходить следующее.


Будет успешно производиться добавление файлов в список распространения командами



ald-admin doc-add ...



Файлы будут успешно распространятся по доменным компьютерам.


Проблема будет в том, что конфигурирующие файлы в Linux зачастую являются скриптами, которые, естественно, должны исполняться. Например, файл /etc/x11/fly-dm/Xstartup - это конфигурационный файл сервера X11, который подходит для того, чтобы в него поместить вызов нужного скрипта при логине пользователя. Однако при распространении этого файла на компьютеры домена через механизм рапространения документа, этот файл будет распространен, но у него будут сброшены права доступа. И данный файл перестанет быть исполняемым.


А в механизме распространения нет команд, которые бы выставляли нужные права доступа распространяемым файлам, и позволяли бы их делать исполняемыми. Поэтому альтернативное решение через механизм распространения документа в домене ALD не работает.


Ответ техподдержки Astra Linux:


Изменение прав на распространяемый файл командой ald-admin doc-add не представляется возможным.


Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования