更改目录的所有者是否安全/var
(默认所有者是 root)。 var 内的子目录是www/html/domain.com
我已将 var 内所有目录的所有者更改为 Apache,因为我将安装与 apache 所有权一起使用的 wordpress。将/var
所有者更改为 apache可以吗?
答案1
您希望 Web 服务器能够访问尽可能少的系统内容。我不会改变所有者任何文件或目录到apache
.我会使用 ACL 或可能的组权限。但无论你选择什么方法来完成任务,你都应该限制你的范围。
有很多东西/var
你的网络服务器不一定有读访问权限,更不用说写访问权限了,包括:
- 来自应用程序的缓存数据(包括您的包管理器)
- 锁定文件
- 日志文件
- 邮件和打印队列
鉴于此,我会离开一切首先处于默认的不可写状态。如果您发现某个特定文件或子目录需要要可写,请添加对该特定对象的写访问权限。遵循此策略,甚至您的文档根目录也/var/www
可能保持不可写状态。
答案2
我做到了。这是一个可怕的错误。请记住,root 可能拥有 /var 中的所有目录,但是 /var/log/mysql 和 /var/lib/mysql 一样都属于 mysql,因此这样做会严重破坏您的系统,在尝试查看时会产生奇怪的效果记录并删除文件。
我所说的更改是指我使用以下方法对所有子目录进行了递归更改:
sudo chown -R root:root /var/*
千万不要这样做!
关于 apache2 你实际上应该使用:
sudo chown -R www-data:www-data /var/www
原因是有时某些软件包将点文件 (.files) 存储在 /var/www 中,如果 apache2 没有 /var/www 的写入权限,则实际上不会发生这种情况。这是一个罕见的问题,不会影响每个人,但我已经看到它发生在 python Flask 上,几乎不可能找到调试问题。