[英]Running python cron script as non-root user
我在CentOS 6框中以特定的用戶帳戶運行python腳本時遇到一個小問題。
我的cron.d / cronfile看起來像這樣:
5 17 * * * reports /usr/local/bin/report.py > /var/log/report.log 2>&1
帳戶reports
存在,並且該腳本要訪問的所有文件都被chowned
並chgrped
為reports
。 python腳本是chmod a+r
。 python腳本以#!/usr/bin/env python
開頭。
但這不是問題。 問題是我在日志文件中什么都看不到。 python腳本甚至沒有開始運行! 任何想法為什么會這樣?
如果我將用戶更改為root
而不是cronfile中的reports
,則運行良好。 但是,我不能在生產服務器中以root
身份運行它。
如果您有任何問題,請詢問 :)
/ e:如果我執行sudo -u reports python report.py
則工作正常。
Cron作業使用設置Cron作業的用戶的權限運行。 IE瀏覽器無論是在的cron表reports
的用戶,會隨着運行reports
用戶。
如果您必須如此sudo
才能使腳本作為reports
登錄時運行,那么該腳本也可能不會作為cron作業運行。 在沒有sudo
reports
下以reports
身份登錄時可以運行此腳本嗎? 如果不是,那么cron作業也不能。 說得通?
檢查您的日志-您是否遇到權限錯誤?
腳本需要某些特權的原因有很多,但是解決此問題的一種簡單方法是將cron作業設置為root
而不是reports
。 更長的方法是查看究竟需要什么提升權限並加以解決。 是文件權限嗎? 受保護的命令? 也許將reports
添加到某些組將使您可以在reports
下而不是root
下運行它。
*如果/當您將cron作業設置為root時,請務必格外小心
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.