我正在编写一个 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