ACL во freenx (aka RX) (галиматья на shell (c) - теперь бан-а-ановая!)

Модераторы: dimbor, Модераторы разделов

Ответить
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

ACL во freenx (aka RX)

Сообщение dimbor »

Вопрос контроля запуска приложений в nx-сессии уже поднимался здесь. Тоже подперло задачей "держать и не пущать", правда несколько с другой стороны - среди клиентов появился народ, мало того, что желающий запустить им не нужное, так еще и представляющий, как это делается. В результате за четыре ночи выносился и родился довесок, представляемый здесь. Он оформлен добавлением к фриэныксу, который после недавних разбирательств у меня стал соответствовать текущему RX. Лежит он у меня в гите, этот и следующий комиты.

Во первых было установлено, что попытки прикрутить 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 с какого-то. Ну это не страшно - все здесь уже взрослые и знают, что делать... ;)
Вложения
1c.gz
(1.34 КБ) 119 скачиваний
Спасибо сказали:
Аватара пользователя
DjSpike
Сообщения: 2265
Статус: в поисках истины
ОС: Lubuntu 12.04

Re: ACL во freenx (aka RX)

Сообщение DjSpike »

задам глупый вопрос.... А нельзя ли ACL локально на сервере настроить , ведь пользователь под который подключается freenx прописан на сервере, и значит доступ ему можно порезать на сервере....
AvReg - По для организации Видеонаблюдения на Linux.
ДЭНСИ:КАССА - Рабочее место кассира под Linux.
Терминальные решения под Linux
Консультации по установке 1с+PostgreSQL+Ubuntu.
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: ACL во freenx (aka RX)

Сообщение dimbor »

Встречный глупый вопрос: а freenx ты куда обычно устанавливаешь? Неужели на клиент? ;)

Upd: хотя подумав, если предыдущий вопрос действительно будет риторическим, то стандартные юниксовые пермишенсы rwx, сам понимаешь, не дадут всех вышеперечисленных преимуществ acl, а искать дополнительные, наверняка существующие, средства по их организации - не стал тратить время, проще было потратить его на написание лишнего скрипта. Функционал которого уж точно устроил.
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: ACL во freenx (aka RX)

Сообщение dimbor »

Почти полгода приблуде. В официальном RX она тоже присутствует. Сам юзаю на всю катушку.
Меж тем не получено ни одного отзыва/пожелания. Вот ведь какой штук. А в свое время потребность активно обсуждалась.
Интересно все это время: у всех все хорошо или никто ничего не понял? ;)
Спасибо сказали:
alexlog
Сообщения: 53
ОС: Debian

Re: ACL во freenx (aka RX)

Сообщение alexlog »

dimbor писал(а):
04.04.2011 09:50
Меж тем не получено ни одного отзыва/пожелания. Вот ведь какой штук. А в свое время потребность активно обсуждалась.
Интересно все это время: у всех все хорошо или никто ничего не понял? ;)

У меня всё хорошо, ACL включил около месяца назад. Функцию задачу "держать и не пущать" выполняет полностью.
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: ACL во freenx (aka RX)

Сообщение dimbor »

Дас ист гуд! Значит теперь душа моя спокойна.
Спасибо сказали:
Ответить