在我的应用程序中,我需要动态添加和删除网络接口的IP地址。但我无法找到一种安全可靠的方法。
我想过使用subprocess(["ip addr add ..."])
,但ip
命令需要sudo
权限,我不想提升应用程序的权限。我也不想硬编码密码。我觉得我没有选择。
是否有一个Python模块可以简化这些操作(示例实现会很棒)。
如果subprocess
是我唯一的选择,有没有办法让这个安全? (我想要编译一个带有硬编码密码的单独二进制文件,以便在我的应用程序中使用,但这听起来不正确。)
答案 0 :(得分:1)
无论你做什么,几乎肯定需要sudo
privs来修改界面。 python模块不能为您改变它。最安全的方法是使用户或组专门用于运行此脚本,并授予其无密码sudo ,同时将其限制为仅需要的命令(ip
等)。以下是您只允许某些命令的方法:https://askubuntu.com/questions/159007/how-do-i-run-specific-sudo-commands-without-a-password