簡體   English   中英

以非root用戶身份運行python cron腳本

[英]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存在,並且該腳本要訪問的所有文件都被chownedchgrpedreports 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.

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