LINUX.ORG.RU

python script для включения openvpn

 , ,


1

1

Написал вот такой скрипт, он работает но требуются права sudo для запуска openvpn, вопрос таков, есть ли какой-либо способ запуска openvpn без ввода пароля sudo, но с правами sudo. Скрипт этот нужен для работы другой программы, которая также написана на python.


import requests, os, sys, subprocess, time, random, signal

def onVpn():
        path = getFile('/home/kirill1/workspace/vpn/conf.ovpn')
        with open(path, "a") as myfile:
                myfile.write("\nscript-security 2\nup /etc/openvpn/update-resolv-conf\ndown /etc/openvpn/update-resolv-conf")
                myfile.close()
        process = subprocess.Popen(['sudo','openvpn', '--auth-nocache', '--config', path])
        print(process.pid)
        time.sleep(90)

        with open("/home/kirill1/workspace/vpn/log.log", "r") as log:
                if log.read().find('Initialization Sequence Completed') != -1:
                        return [process, True]
                else:
                        return [process, False]

def offVpn(process):
        print(process)
        print(process.pid)
        process.kill()
        pid = process.pid + 1
        print(pid)
        while process.poll() != 0:
            time.sleep(1)
            return

pr = onVpn()
print(pr)
time.sleep(10)
offVpn(pr[0])
print('finish')

Ответ на: комментарий от einhander

написал команду sudo visudo, там добавил такую запись - ``` kirill1 ALL = NOPASSWD: ALL ``` (kirill1 это я), но openvpn всё равно выдает такую ошибку ``` ERROR: Cannot ioctl TUNSETIFF tun3: Operation not permitted (errno=1) ``` что я делаю не так?

kirill568 ()

без ввода пароля sudo, но с правами sudo

Вот пример запуска службы НФС от пользователя nfssrvc «nfssrvc ALL=(ALL) NOPASSWD:/bin/systemctl start nfsserver.service» Делаете подобную запись в /etc/sudoers, только со своими параметрами и запускаете через sudo

Bash_Boy ()