我需要提供一个Python程序,允许用户动态更改其设备的网络参数(IP,掩码,DNS和网关)。例如,将其IP从192.168.1.10/24更改为192.168.1.15/24。我不想以root身份运行我的程序 - 但我可以向我的用户提供一些细节权限(例如将用户添加到可以修改/usr/network/interfaces
文件的组中)。
我发现的是pynetlinux库,但它只提供IP和掩码修改,需要以root身份运行(或者我可能会错过它)。
我可以通过解析interfaces
文件并运行一些bash / shell命令来完成它,但我不想重新发明轮子。我很确定有些人已经解决了我的问题并做了一些很好的事情。
我在Ubuntu 12.04上运行。我需要我的程序也可以在Ubuntu 14.04,CentOS和RedHat
上工作答案 0 :(得分:1)
您应该尝试创建程序必须执行的完整操作列表。我发现在类似的设置中,为了响应用户交互,我们不得不:
interfaces
,host
,resolv.conf
,...)我们最终创建了一个Bash脚本,该脚本具有明确定义的接口,某个非特权用户可以使用sudo
从任何其他程序调用该接口。
然而,我们基于对话框的前端已经用Bash编写,所以我们没有花太多时间寻找现有的库,这肯定值得您的工作。