Error: Couldn't open file "/var/www/awstats/awstats032014.site.net.tmp.9198" for write: Permission denied
Setup ('/etc/awstats/awstats.site.net.conf' file, web server or permissions) may be wrong.
Check config file, permissions and AWStats documentation (in 'docs' directory).
当我手动尝试更新 awstats(通过浏览器链接)时,出现此错误。我已将 /var/www/awstats/ 的文件夹权限设置为 775,但仍然出现错误。
如果我在该文件夹上创建一个新文件,默认权限设置会将权限设置为 774,这应该可以工作。
答案1
权限drwxrwxr-x root root
意味着只有root
用户和组成员root
才能写入该目录。在目录中创建或删除文件被视为写作到该目录,以便当您尝试创建文件时针对包含的目录进行权限检查/var/www/awstats/awstats032014.site.net.tmp.9198
。
这个问题的另一半是 Apache 正在创建文件。Apache 通常以用户身份运行,www-data
在基于 Debian 的系统上如此,httpd
在基于 RedHat 的系统上亦如此。这些用户不属于该root
组,因此无法写入该目录。
最小权限原则建议我们做出改变,只允许我们想要的权限,不能允许更多权限。所以我认为将目录所有者更改为 Apache 用户就可以了。
chown www-data /var/www/awstats
如果您愿意,您也可以将模式改回755
,775
它仍然可以工作。
除了更改所有权之外,您还可以更改目录的组,或将用户添加www-data
到root
组,或将目录的模式更改为 777。后两者允许的操作远远超出我们在此尝试执行的操作,因此应该被视为危险。