kwl*_*l34 13 c python django freebsd
我在python脚本中有一个快速的一次性任务,我想从Django(www用户)调用,这将需要root权限.
起初我以为我可以使用Python的os.seteuid()并在脚本上设置setuid位,但后来我意识到我必须在Python本身上设置setuid位,我认为这是大不了.据我所知,如果使用sudo,情况也是如此,我真的很想避免.
在这一点上,我正在考虑编写一个C包装器使用seteuid并以root身份调用我的python脚本,并将必要的参数传递给它.
这是正确的做法还是我应该看别的东西?
the*_*amk 14
sudo在Python上不需要setuid位.您可以仅为一个命令启用sudo,不启用任何参数:
www ALL=(ALL) NOPASSWD: /root/bin/reload-stuff.py ""
Run Code Online (Sandbox Code Playgroud)
如果您的脚本不接受任何参数,不能被www用户覆盖,并且sudo执行"env_reset"(大多数发行版中的默认设置),这将是安全的.
你可以接受参数,但要小心它们 - 不要输出文件名,确保你验证所有输入.在这种情况下,从sudo行的末尾删除"".
归档时间: |
|
查看次数: |
4588 次 |
最近记录: |