如何在python中以所有特权运行命令



目前我正在一个项目上工作,我正在使用django-kronos进行调度,所以,当用户调度任务时,我正在运行脚本和脚本结束,我需要运行

python manage.py installtasks

在crontab中插入任务。

当我在终端执行

脚本时工作正常但当我将它与django应用程序集成时,它抛出了一个错误

IOError: Read crontab nobody:你(nobody)不允许使用这个程序(/usr/bin/crontab)

我很想知道是什么原因导致了这个问题?

还是我错过了什么?

在脚本(chmod u+s)上设置setuid标志将使脚本作为脚本文件的所有者UID运行,如果它作为一个单独的进程运行的话。然后你需要观察谁被允许执行它和/或做一些身份验证或检查运行用户与其他任何人执行它,它将是相同的。

这基本上是一个变通方法,如果应用程序中有更好的工具可用,则不建议使用。

从我所看到的,django-kronos逻辑应该从manage.py而不是web代码正确运行。

最新更新