给Django应用程序根访问权限?

2024-09-29 18:42:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用django构建一个api,它应该使用POST参数来改变iptables。我使用的是django1.4,djangorestframeworkpython-iptables。我面临的问题是python iptables需要根访问权限来更改iptables规则。我可以通过执行$ sudo python来更改iptables规则,并且可以在pythonshell中更改这些规则。我还可以通过使用接受iptables参数的iptdump模块来更改这些规则,并创建这些规则,稍后可以将这些规则保存到文件中(iptables.rules.txt)并使用织物的local('sudo iptables-restore < iptables.rules.txt')。但这将始终提示用户输入根密码。有没有办法可以给django应用程序根权限,这样我就可以绕过sudo密码提示了。在


Tags: 模块djangotxtapi权限密码iptables参数
1条回答
网友
1楼 · 发布于 2024-09-29 18:42:27

如果您确实需要应用程序的一部分以root身份运行,可以将其重写为守护程序,并按照this answer中的建议从主Django应用程序与它通信。我只会建议如果下面的选择不适合你的要求。在

替代方案sudo iptables-restore < iptables.rules.txt要简单得多,只需告诉sudo不要只为这个命令请求密码,方法是将此命令添加到/etc/sudoers文件中:

djangouser ALL=(ALL) NOPASSWD: /sbin/iptables-restore

其中djangouser是运行Django进程的用户。在

编辑:通过将新的iptables直接发送到iptables-restore进程,可以避免编写中间文件:

^{pr2}$

相关问题 更多 >

    热门问题