2024-06-03 11:53:02 发布
网友
如何让python运行sudo openvpn--cd/etc/openvpn--config client.ovpn
我现在正在试着做以下的事情,但没有成功
vpnfile2 = '/etc/init.d/openvpn' cfgFile = 'client.ovpn' os.system('sudo \"" + vpnFile2 + "\" --cd \"" + vpnpath + "\" --config \"" + cfgFile + "\"')
这个问题已经发布了一段时间了,但是如果有人遇到这个问题(像我一样),有另一种方法可以使用os.system方法获取特权。。
它只有在GUI环境中运行时才能工作。 您可以简单地用'gksu'或'kdesu'或'kdesudo'调用它,它在gnome会话中看起来像这样:
import os vpnfile2 = '/etc/init.d/openvpn' cfgFile = 'client.ovpn' os.system('gksu \"" + vpnFile2 + "\" --cd \"" + vpnpath + "\" --config \"" + cfgFile + "\"')
这个提示有效,但我还没有测试它是否能与您的代码一起工作。
使用subprocess模块
subprocess
import subprocess subprocess.call(['sudo', vpnFile2, '--cd', vpnpath, '--config', cfgFile])
如果您想使用os.system而不是子流程有什么原因,我通常会通过bash来清洗它,所以 os.system('''sudo bash -c "command to run"''')(或sh或任何外壳)。在许多情况下,它能更好地处理论点。
os.system('''sudo bash -c "command to run"''')
这个问题已经发布了一段时间了,但是如果有人遇到这个问题(像我一样),有另一种方法可以使用os.system方法获取特权。。
它只有在GUI环境中运行时才能工作。 您可以简单地用'gksu'或'kdesu'或'kdesudo'调用它,它在gnome会话中看起来像这样:
这个提示有效,但我还没有测试它是否能与您的代码一起工作。
使用
subprocess
模块如果您想使用os.system而不是子流程有什么原因,我通常会通过bash来清洗它,所以
os.system('''sudo bash -c "command to run"''')
(或sh或任何外壳)。在许多情况下,它能更好地处理论点。相关问题 更多 >
编程相关推荐