cron 作业日志中的权限被拒绝错误

cron 作业日志中的权限被拒绝错误

我以“ubuntu”用户身份运行 Ubuntu EC2 实例。当我创建一个 cron 作业来检查 mysql 状态并将日志保存在 /var/log/filename.log 中时,我收到一封邮件(通过安装的 postfix)并且日志状态为:“无法创建 /var/log/filename.log:权限被拒绝”。当创建 cron 作业以将日志保存在 /home/ubuntu/filename.log 中并且 /var/log/filename.log 的所有权已更改时,没有收到任何邮件。

我的路径变量:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

查看我的 cron 作业消息的最佳方式是什么?

答案1

在 EC2 Ubuntu 实例上,/var/log 的标准所有权是 root:syslog。

如果您希望您的 ubuntu 用户能够在 /var/log 中创建文件,则需要将该用户添加到 syslog 组。

usermod -aG syslog ubuntu

您需要注销并重新登录以使新的组权限生效。

要非常小心。向标准用户授予提升的权限通常不是一个好主意。如果您有权在 /var/log 中创建文件,那么您也有删除文件的权限,这可能会损害其他方面。请考虑将日志存储在 /var/log 以外的某个位置。如果必须将它们存储在该位置,请考虑创建一个新用户来运行后台作业并授予该用户所需的权限,或者将作业放在已经拥有所需权限的标准系统 cron 空间中。

答案2

问题是您的用户 ubuntu 没有权限在文件夹 /var/log 中创建新文件。

ls -la /var/ | grep log
drwxr-xr-x 14 root root   4096 Aug 17 09:08 log

因此,您可以做的是使用 root 用户或 sudo 命令创建文件,然后将文件所有权更改为 644。

sudo touch /var/log/filename.log
sudo chown ubuntu:ubuntu /var/log/filename.log

相关内容