如何在python中运行具有所有权限的命令

时间:2016-10-27 11:35:27

标签: python django crontab

目前我正在开发一个项目,我正在使用django-kronos进行调度,因此,当用户安排任务时,我正在运行脚本并且脚本结束我需要运行

  

python manage.py installtasks

这有助于在crontab中插入任务。

当我在终端执行时,

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

  

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

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

还是我错过了什么?

1 个答案:

答案 0 :(得分:0)

在脚本(/samples/your/awesome/subitem)上设置setuid标志将使脚本作为脚本文件的所有者UID运行(如果它作为单独的进程运行)。然后,您需要观察谁被允许执行它和/或进行一些身份验证或检查正在运行的用户,就像执行它的任何人一样,它将是相同的。

这几乎是一种解决方法,如果应用程序中有更好的工具,则不建议这样做。

From what I can seechmod u+s逻辑应该从django-kronos而不是正确的网络代码运行。