Рейтинг:2

Сценарий подключения клиента openvpn не видит локальные файлы?

флаг fr

Я запускаю сервер openvpn и подключаюсь к нему из дома. Мой домашний IP динамический, и я хочу сохранить его в файле на сервере.

ОС — Debian 10 и OpenVPN 2.4.7.

сервер.конф:

прото удп
порт 1234
комп-льзо
поддержка 10 60
ping-таймер-rem
упорный тун
постоянный ключ
ca /etc/openvpn/easy-rsa/keys/ca.crt
сертификат /etc/openvpn/easy-rsa/keys/server.crt
ключ /etc/openvpn/easy-rsa/keys/server.key
дх /etc/openvpn/easy-rsa/keys/dh2048.pem
reeg-sec 0
шифр AES-256-CBC
сервер 192.168.123.0 255.255.255.0
маршрут 192.168.9.0 255.255.255.0
клиент-клиент
клиент-конфигурация-каталог /etc/openvpn/clients
статус /etc/openvpn/статус
глагол 3
журнал /var/log/openvpn.log
скрипт-безопасность 3
клиент-соединение /etc/openvpn/openvpn-client-connect.sh

/etc/openvpn/openvpn-client-connect.sh:


awk -F ',' '/192.168.123.5/ { print $3 }' /etc/openvpn/status | awk -F ':' '{ print $1 }' > /home/s/home-ip
chown s:s /home/s/home-ip

Но это не работает, и openvpn.log пишет:

/etc/openvpn/openvpn-client-connect.sh: строка 3: /home/s/home-ip: нет такого файла или каталога

Конечно, /home/s/home-ip существует, и когда я запускаю /etc/openvpn/openvpn-client-connect.sh из оболочки, все работает. Что здесь не так?

флаг in
Проверьте разрешения, доступен ли /home/s для чтения пользователем службы openvpn?
Alex avatar
флаг in
Вы запускаете openvpn с systemd? Если да, то у меня может быть обходной путь для вас
флаг fr
@Alex Да, он начинается с systemd (установка Debian по умолчанию) NiKiZe openvpn работает от имени root, дополнительных пользователей нет
Alex avatar
флаг in
Пожалуйста, попробуйте написать содержимое с помощью tee вместо >
Tom Yan avatar
флаг in
@Alex, хотя скрипт запускается не systemd, а openvpn
Tom Yan avatar
флаг in
Однако, возможно, вам нужен шебанг или что-то в этом роде, или ваш скрипт каким-то образом сломан (плохое цитирование и т. д.). Ошибка не похожа на ту, которая возникает из-за того, что вы `chown`ируете несуществующий файл, а вместо этого пытаетесь выполнить несуществующий файл.
Alex avatar
флаг in
Я собирался предложить написать ExecPost с помощью службы systemd, но это запустит сценарий один раз, а не для каждого соединения, и ему придется периодически выполнять некоторые проверки со сценарием, поэтому становится бессмысленным иметь его в ExecPost. Вот почему я спросил, но в конце концов передумал. OP, запишите содержимое в свой файл с помощью tee, а не с > и посмотрите, понравится ли это openvpn.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.