Привет всем.
На работе нужно подключаться к vpn. Есть *.ovpn файл и можно подключиться к впн командой
sudo openvpn --config config.ovpn
Без sudo, конечно подключиться не выходит. Пароль вводить, конечно, задалбывает ))
Насколько я понимаю, можно обернуть эту команду в шелл скрипт файл, задать этому файлу владельца root, задать suid bit и у скрипта будут все пермишны. Так я и делаю
Вот файл connnect_vpn.sh
#!/bin/sh
openvpn --config config.ovpn
Дальше задаю файлу владельца - root
sudo chown root:root connect_vpn.sh
Делаю файл исполняемым
sudo chmod +x connnect_vpn.sh
Задаю suid bit
sudo chmod u+s connect_vpn.sh
И получаю такой файл
-rwsrwxr-x 1 root root 113 фев 5 18:16 connect_vpn.sh*
Вроде всё правильно.
Для сравнения вот /usr/bin/sudo
-rwsr-xr-x 1 root root 277936 апр 8 2024 /usr/bin/sudo*
Дальше запускаю свой скрипт
./connect_vpn.sh
И получаю вот такое (публикую последние строки)
2025-02-05 18:38:24 net_route_v4_best_gw query: dst 0.0.0.0
2025-02-05 18:38:24 net_route_v4_best_gw result: via <тут ip> dev wlp82s0
2025-02-05 18:38:24 ROUTE_GATEWAY <тут ip>/255.255.254.0 IFACE=wlp82s0 HWADDR=<тут мак адрес>
2025-02-05 18:38:24 ERROR: Cannot ioctl TUNSETIFF tun: Operation not permitted (errno=1)
2025-02-05 18:38:24 Exiting due to fatal error
То есть нет пермишнов )) . Если запустить файл так - sudo ./connect_vpn.sh , то впн нормально запускается и нормально работает.
Может кому-нибудь сразу очевидно, что я делаю не так? Или может нельзя сделать такое для openvpn ?