Во первых было установлено, что попытки прикрутить ACLS туда делались (см. родной nxacl.sample), да только место вызова nxacl из под nxserver неподходящее - юзер еще не известен. Поэтому было решено идти своим путем (как обычно) и заряжать злобный скрипт nxacl.app из nxnode при уже подготовленной к употреблению сессии. Он позволяет: разрешить запуск, разрешить при условии, запретить+обматерить, подсунуть вместо то, что действительно нужно. Последнее может подразумевать скрипт запуска того же приложения, но с предварительными действиями, например - подчисткой хвостов за прошлыми сессиями. Много-чего можно придумать, но кофе не варит. Пока.
Патч исходного продукта заключается в добавлении 4-х строчек в nxnode и переменной NX_ACL_DIR в 02-restriction.conf. Остальное - все новое. Обкаменчено по самое не хочу и обвешано логированием как новогодняя елка. Т.е. логика парснига ACLS и принятия решения прозрачна.
Пояснить хочу только формат строки ACL, т.к. не уверен, что понятно выразился на пиджине.
Итак, строка имеет вид:
[!]CmdTpl [%%% [[!][@@]OnceAppTpl] %%% Prog|"Msg"]
Условие1 %%% Условие2 %%% Действие_при_ выполнении_первого_ и_невыполнении_второго
При выполнении обоих условий (выполнении первого и отсутствия остальной части строки ACL) происходит запуск иcходного приложения.
При невыполнении первого - парсим следующую строку ACL.
Условие1 - шаблон на приложение, Условие2 - шаблон на список процессов в момент запуска.
Однако, шаблона может быть !инвертирована: найден -> не найден
Если требуется выполнить действие лишь при выполнении условия на приложение (не трогая процессы), второе условие делается заведомо невыполнимым - записывается туда !.* (== "не совпадает ни с чем")
Примеры ACL в гите, в общем, тоже есть.
Да, разелитель (%%%) уродский, но так проще парсить.
И раз такая пьянка, сдаю свой универсальный скрипт запуска 1с-ки семерки в рутлесе. Главная изюмина - ожидание подключения проброшенного клиентского принтера вместо слипа (правда сделан только для ENABLE_CUPS_SERVER_MODE=1, но идея должна быть ясна)
Как обычно, приглашаю желающих покритиковать аргументированно. Дождусь ли?
P.S.: Программисты Этерсофта тоже будут приглашены сюда для критики данного извращения. С помощью рассылки.
P.P.S.: А zenity - ф топку.
P.P.P.S.: Файлик оказался с досовскими CR/LF с какого-то. Ну это не страшно - все здесь уже взрослые и знают, что делать...