Сценарий маршрутизации openvpn не работает при запуске из systemctl

Не могли бы вы также использовать совершенно другое приложение, например kdb + ?

(его 32-разрядная версия бесплатна - as-in-beer с ограничением памяти 4 ГБ)

Некоторые основы:

  1. Загрузка файла в виде числового списка с одной колонкой.

     flip (enlist "I"; ",") 0: hsym `$" / path / to / input "
     
    • 0: - многоцелевая функция для загрузки из входной файл. В этом вопросе трактуйте (enlist "I"; ",") просто как спецификацию формата файла, а затем примените flip , чтобы превратить вывод в пригодный для использования список .
  2. Применение функции cross .

     крестик a: ...  
     
    • q (язык kdb +) может быть довольно кратким, но это также означает присвоение переменных (например, a: 42 для установки 42 на a ) можно назначить и использовать упорядоченным образом. Здесь мы назначаем входной файл переменной a , чтобы мы могли пересечь сам .
  3. Подготовьте строковый вывод.

     "," 0: перевернуть ...  
     
    • Еще раз, 0: используется здесь для подготовки результатов в виде строк, разделенных запятыми.
  4. Запись в выходной файл.

     (hsym `$" / путь / к / выходу ") 0:", "... 
     
    • На этот раз нам понадобится () вокруг левого аргумента 0: , чтобы функционально использовать для hsym явный. Наконец, 0: здесь используется для третьего времени записи в файл.

Собираем все вместе:

(hsym`$"/path/to/output")0:","0:flip a cross a:flip(enlist"I";",")0:hsym`$"/path/to/input"

А теперь плохие новости ...

Ограничение 4 ГБ ОЗУ 32-разрядной бесплатной версии обрабатывает только до 6000 строк . ..

q)\ts (hsym`$"output6k.txt")0:","0:flip a cross a:flip(enlist"I";",")0:hsym`$"test6k.txt"
23428 3378126736
q)count distinct flip (enlist "I";",") 0:hsym`$"test6k.txt"
6000

\ ts показывает, что затраченное время составляет чуть менее 24 секунд, при этом используется почти 3,4 ГБ памяти.

( Я решил все же опубликовать это в качестве ответа, чтобы мои усилия не пропали даром ... )

2
19.02.2018, 09:40
2 ответа

Была аналогичная проблема со сценариями запуска/отключения ssh (без использования selinux ), пока я не нашел этот вопрос.

Хотя вопрос довольно старый, я решил его, изменив следующие параметры песочницы в определении службы:

ProtectSystem=true
#ProtectHome=true
ProtectHome=read-only

Возможно, это поможет кому-то еще. Дополнительную информацию можно найти здесь .

1
27.01.2020, 22:18

У меня также недавно была эта проблема, и оказалось, что selinux. Вот что вы можете сделать, чтобы смягчить:

cd /etc/openvpn
mkdir -p scripts
chown -R root:root scripts
chmod 0700 scripts
cd scripts
# create up and down scripts here
# placing scripts in this directory is important!!
# restorecon must be run 
restorecon -R /etc/openvpn/scripts/
setsebool openvpn_run_unconfined on

Короче говоря, selinux имеет предустановленную конфигурацию, которая позволяет запускать сценарии up и down, если они размещены в /etc/openvpn/scripts. Как только скрипты будут помещены в этот каталог, запуск restorecon установит правильные флаги selinux для ваших скриптов, а установка sebool на on позволит запускать скрипты up и down.

0
27.01.2020, 22:18

Теги

Похожие вопросы