我的 apache 服务器将我的项目的日志文件放在下面
/var/log/apache2/foo_error.log
我将用户和组设置为我的项目的用户和组(foo:www-data),我什至尝试将 chmod 为 777(我知道这是一个风险,但它只是一个本地虚拟机),但是如果我尝试访问它,然后我仍然得到没有权限
tail -f /var/log/apache2/foo_error.log
tail: cannot open '/var/log/apache2/foo_error.log' for reading: Permission denied
tail: no files remaining
我想到的唯一解决方案是更改 VHOST 配置,以便将日志文件保存在项目的文件夹中。但我出于兴趣问这个问题,如果日志文件位于 apache2 日志文件夹中,它是否也有效。
答案1
马库斯链接的答案很好地解释了目录权限的工作原理。
要回答您的具体情况的“如何” - 只要您希望每个人访问自身的日志文件都具有正确的权限以确实允许对其自身进行只读或读写访问,您可以在这些用户可以访问的中心位置。
ln /var/log/apache2/foo_error.log /path/to/user_accessible_dir/foo_error.log
请注意,使用符号链接将不起作用,因为它将受到原始文件的父目录权限的影响。
如果您想更好地理解硬链接和符号链接之间的区别(以及为什么它有效) - 请参阅这个答案:https://stackoverflow.com/a/185903/17508208