apache目录权限设置核心是按角色最小授权:htdocs等根目录设755/644仅读,上传目录单独隔离并限www-data写;logs目录755/640且禁execcgi;conf目录root只读644/755;modules和bin目录root所有、.so文件644、二进制755。

htdocs 及网站根目录:默认只读,上传目录单独隔离
网站静态文件(HTML/CSS/JS/图片)应归属 root 或部署用户,Apache 进程(如 www-data)仅需读取权限,不可写:
- 目录权限设为 755(所有者可读写执行,组和其他人可读+执行)
- 文件权限设为 644(所有者可读写,组和其他人只读)
- 执行命令示例(以 /var/www/html 为例):
sudo chown -R root:www-data /var/www/html
sudo find /var/www/html -type d -exec chmod 755 {} \;
sudo find /var/www/html -type f -exec chmod 644 {} \; - 若站点有上传功能(如 CMS 的 media 目录),必须单独创建子目录(如
/var/www/html/wp-content/uploads),并仅对该目录开放写权限:
sudo chown -R www-data:www-data /var/www/html/wp-content/uploads
sudo chmod 755 /var/www/html/wp-content/uploads
logs 目录:确保 Apache 可写,但禁止其他用户访问
日志目录被篡改可能导致掩盖攻击痕迹或触发解析漏洞(如上传 .log 文件并被当作 PHP 执行)。正确做法是:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 归属设为 www-data:adm(Ubuntu/Debian)或 apache:root(RHEL/CentOS)
- 目录权限 755,日志文件权限 640(组可读,其他人无权访问)
- 禁用日志目录下的 .htaccess(若启用)或防止 CGI 解析:
在主配置或虚拟主机中添加:
AllowOverride None
Options -ExecCGI -Indexes
conf 配置目录:Apache 只读,管理员专属写入
配置文件一旦被篡改,可能开启危险模块(如 mod_cgi)、暴露源码或绕过认证。必须严格限制:
- 整个
/etc/apache2(Debian)或/etc/httpd(RHEL)归属 root:root - 配置文件权限统一为 644,目录为 755
- 禁用运行时修改:确保 Apache 进程(www-data/apache)对 conf 目录无写权限,也无执行权限
sudo chmod -R o-w /etc/apache2
sudo chmod -R g-w /etc/apache2 - 避免使用
Include加载用户可控路径(如/var/www/*/conf/*.conf)
modules 和 bin 目录:禁止非 root 修改与执行
动态模块(.so 文件)和二进制命令若被替换,可能植入后门:
-
/usr/lib/apache2/modules/或/usr/lib64/httpd/modules/应归属 root:root,权限 755 - 模块文件(.so)权限设为 644,禁止组和其他人写入
-
/usr/sbin/httpd、/usr/bin/apachectl等二进制文件必须为 755 且归属 root:root - 检查是否有异常的 suid 或 sgid 位:
find /usr/lib/apache2 /usr/sbin -perm /6000 -ls(结果应为空)










