apache的serverroot目录(如/etc/httpd或/usr/local/apache)存放核心配置与日志定义,必须设为root:root属主属组、权限750,其下.conf文件权限应为640,且web进程(如apache用户)须无法读取,否则存在严重安全风险。

Apache 的 root 目录(即 ServerRoot,通常是 /etc/httpd 或 /usr/local/apache)存放的是配置文件、模块、日志路径定义等核心管理内容,**绝不能被 Web 进程或普通用户读写**。严格限制其访问权限,是 Apache 安全配置的第一道防线。
确认 ServerRoot 实际路径
打开主配置文件:grep "^ServerRoot" /etc/httpd/conf/httpd.conf
常见值为 ServerRoot "/etc/httpd" 或 ServerRoot "/usr/local/apache"。后续所有权限操作都以该路径为准。
设置属主与基础权限
必须确保:
- 属主为 root,属组建议也为 root(不推荐用 www-data/apache 等 Web 用户)
- 目录权限设为 750(即
drwxr-x---),禁止其他用户(others)任何访问 - 内部关键文件如
httpd.conf、conf.modules.d/*.conf权限应为 640
执行命令示例:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
chown -R root:root /etc/httpd
chmod 750 /etc/httpd
find /etc/httpd -type f -name "*.conf" -exec chmod 640 {} \;
禁止 Apache 进程读取 ServerRoot 下的敏感文件
Apache 主进程以 root 启动,但子进程(处理请求的 worker)会切换到指定用户(如 apache 或 www-data)。要防止子进程意外读取配置目录:
- 确保
httpd.conf中未配置Include指向可被 Web 用户写入的路径(如/var/www/conf) - 禁用非必要模块(如
mod_userdir),避免引入绕过路径限制的机制 - 检查
LoadModule行是否加载了不受信的第三方模块(尤其是编译自定义模块时)
验证是否生效
模拟 Web 进程用户(如 apache)尝试访问 root 目录:
sudo -u apache ls -l /etc/httpd
sudo -u apache cat /etc/httpd/conf/httpd.conf
两项操作均应返回 Permission denied。若能列出内容或读取文件,说明权限未收紧到位。










