簡體   English   中英

python cgi的crontab權限

[英]crontab permission with python cgi

我想使用 python 的 crontab lib 與 crontab 任務進行交互。 如果我將代碼寫入 python 文件,我們將其命名為 cron.py:

from crontab import CronTab
my_cron = CronTab(user=True)
job = my_cron.new(command='python test.py')
job.minute.every(1)
my_cron.write()

並運行:

python cron.py

我會得到“終端”想管理你的電腦。 管理可以包括修改密碼、網絡和系統設置。 我允許后就可以成功添加crontab任務了。但是如果我把同樣的代碼寫到python cgi文件中,並且想用一個html頁面來觸發它(比如在html頁面我點擊一個按鈕,然后cgi 腳本將被觸發),我將收到此錯誤:

Traceback (most recent call last):
  File "/Users/chuci/apa/CGI-Executables/create.py", line 58, in <module>
    my_cron.write()
  File "/anaconda3/lib/python3.6/site-packages/crontab.py", line 354, in write
    CRONCMD, ret, proc.stderr.read()))
OSError: Program Error: /usr/bin/crontab returned 1: b'crontab: tmp/tmp.8166: Operation not permitted\n'

所以我想知道我應該怎么做來處理這個權限問題? 我將 macOS 和 apache2 用於 Web 服務器和 cgi。 我已經為我的 cgi 文件運行了“chmod 777 create.py”。 謝謝!

在咨詢了 crontab 庫的開發者后,他的回復如下:

感謝您報告問題。 我認為您是第一個報告在 macOS 上使用該模塊的人。 作為 UNIX,它應該是兼容的,因為它的 crontab 不是很復雜。 您報告的權限錯誤與未以 root 身份運行一致。 我不知道為什么 mac 需要額外的權限來寫入用戶的 crontab,我懷疑這與他們的權限系統有很大關系,但我不知道它是如何工作的。 如果您發現問題所在,我歡迎您提供補丁以改進 mac 支持。

所以解決方案是:在 Unix 而不是 macOS 上使用它。 macOS 可能有一些安全檢查,這會導致它失敗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM