
我正在編寫一個 python 腳本,我在 /var/log/ 資料夾中創建了一個具有 664 權限的文件
python 腳本無法將日誌寫入建立的文件,IDK 為什麼...因為檔案擁有者是 ubuntu(aws 的預設使用者)。
我非常小心地授予了該文件的讀寫權限
由於權限被拒絕問題,計劃的 crontab 無法運行該應用程式。有任何想法嗎?
i) 用於設定 crontab 的命令 - crontab -e
ii) 運行 python 腳本的 crontab 行 - */30 * * * * python3 /home/ubuntu/message_initiator.py
iii) 確切的錯誤訊息 -Permission denied: '/var/log/ice-message-initiator.log'
答案1
如果你跑
ll -d /var/log
root
然後您將看到它由(可能syslog
是群組)擁有並具有 755 或 775 權限,這意味著雖然其他人可以讀取和遍歷該目錄,但只有root
(並且可能syslog
)可以修改它。ice-message-initiator.log
是 in/var/log
並且ubuntu
是其所有者,ubuntu
沒有修改權限,/var/log
這意味著它無法修改其內容,無論它們是檔案還是目錄。該錯誤不是因為ubuntu
使用者無法讀取該檔案而發生,而是因為由於沒有對其父目錄的修改權限而無法寫入該檔案/var/log
。
要讓你的 cronjob 工作,你要么需要運行它,root
要么讓它將日誌檔案寫入子目錄,例如並為其/var/log/ice
授予修改權限。ubuntu