apache目录权限配置遵循“最小权限+职责分离”原则:网站根目录设apache:apache/755、文件644;配置目录root:root/644;日志目录root:apache/750;模块目录root:root/755;变更后需用restorecon恢复selinux上下文。

Apache目录结构中各文件的所有者配置,核心原则是“最小权限+职责分离”:让每个目录/文件只赋予运行所需用户和组最低限度的读、写、执行权限,避免越权访问或意外篡改。不能统一用root,也不能全设成apache——得按功能分层定主。
网站根目录(如 /var/www/html)
这是内容交付区,Apache进程需要读取HTML、CSS、JS等静态资源,但一般不应允许写入(除非有上传逻辑):
- 所有者设为 apache:apache(CentOS/RHEL)或 www-data:www-data(Debian/Ubuntu);
- 目录权限设为 755(所有者可读写执行,组和其他人仅可读可进入);
- HTML/图片等静态文件设为 644(仅所有者可写);
- 若需支持CMS后台上传(如WordPress),上传目录(如
/wp-content/uploads)单独设为 775,组可写,并确保web组包含部署用户(如把deploy用户加进apache组)。
配置文件目录(/etc/httpd/conf 或 /etc/apache2)
这些是服务控制中枢,必须防篡改,只允许管理员维护:
PHP中文网提供Apache 2.4.62 官方 tar.gz 源码包下载,通过源码编译安装,开发者能够灵活定制模块、优化性能并精准控制安装路径,满足多样化的业务需求。
- 所有者设为 root:root;
- 主配置文件
httpd.conf或apache2.conf权限设为 644(root可写,apache可读); -
conf.d/下的自定义配置文件也保持 644,避免非root用户误改; - 敏感认证文件(如
.htpasswd)建议移出Web可访问路径,放在/etc/httpd/auth/这类非公开目录,并设为 640,组为apache(保证Apache能读,其他人不可见)。
日志目录(/var/log/httpd 或 /var/log/apache2)
Apache需要持续追加写入日志,但不允许读取旧日志或删除——防止日志被清理掩盖攻击痕迹:
- 所有者设为 root:apache(或 root:www-data);
- 目录权限设为 750(root可读写执行,组可读可进,其他人无权);
- 日志轮转工具(如
rotatelogs或logrotate)应以root身份运行,确保新日志文件自动继承相同属主和权限。
模块与二进制目录(/usr/lib64/httpd/modules 或 /usr/lib/apache2/modules)
这是Apache扩展能力的基础,一旦被替换或注入恶意模块,整个服务即失守:
- 所有者必须是 root:root;
- 目录权限设为 755,模块文件(
.so)设为 644; - 禁止apache用户对modules目录有任何写权限,也不建议开放执行位给组或其他人。
不复杂但容易忽略:每次变更属主后,记得检查SELinux上下文(如启用时),用 restorecon -Rv /path 恢复标准策略,否则即使chown正确,Apache仍可能因安全策略拒绝访问。










