服务器根目录(/)不可修改权限,需加固的是/root(700)、/etc(755,其中/etc/shadow为600)、/boot(755)、/usr/bin(755)及/var/www(755,上传目录单独设750并禁脚本执行),并配合chattr +i、ACL和定期扫描。

服务器根目录(/)本身不能也不应被“设置权限”——它是Linux文件系统的最顶层,其权限由内核硬编码保障,普通用户或管理员无法用 chmod 修改 / 的权限。真正需要加固的是root用户的主目录(/root)、关键系统目录(如 /etc、/var/log、/boot)以及Web服务根目录(如 /var/www)。混淆这两者是常见误区,容易导致误操作或安全盲区。
/root 目录权限加固
这是超级用户自己的家目录,存放敏感配置和凭证,必须严格隔离:
- 确保权限为
700(仅 root 可读、写、执行):sudo chmod 700 /root - 确认属主属组均为 root:
sudo chown root:root /root - 检查内部文件,如
.bash_history、.ssh/等,避免遗留可读的密钥或命令记录;.ssh/authorized_keys应设为600 - 禁用 root 远程 SSH 登录(在
/etc/ssh/sshd_config中设PermitRootLogin no),强制使用普通用户 + sudo
/etc、/boot、/usr/bin 等核心系统目录
这些目录控制着系统行为与启动过程,需防止非授权修改:
-
/etc:配置中心,设为755,属主 root,属组 root;重要子目录如/etc/shadow必须为600,/etc/sudoers必须用visudo编辑,权限固定为440 -
/boot:启动文件所在,设为755,禁止普通用户写入;若启用 Secure Boot,还需校验文件签名完整性 -
/usr/bin和/bin:系统命令目录,保持755,定期用rpm -V(RHEL/CentOS)或dpkg --verify(Debian/Ubuntu)校验二进制文件是否被篡改
Web 服务根目录(如 /var/www)
这不是系统根目录,但常被称作“网站根目录”,是攻击高频入口,权限设计要兼顾功能与隔离:
- 主目录设为
755,属主 root,属组 www-data(或 nginx):sudo chown -R root:www-data /var/wwwsudo chmod -R 755 /var/www - 上传目录(如
/var/www/uploads)单独设为750或770,仅限 Web 用户组写入,且禁用脚本执行(通过 Nginx 配置location ~ \.php$ { deny all; }) - 敏感配置文件(如
.env、config.php)不应放在 Web 可访问路径下;若必须存在,用chmod 600并配合 Web 服务器规则拒绝 HTTP 直接访问
权限加固的配套动作
单靠 chmod 不足以构成安全防线,需组合实施:
- 启用
chattr +i锁定关键文件(如/etc/passwd、/etc/shadow),防止即使 root 也被意外或恶意修改(解除需chattr -i) - 使用 Linux ACL(
setfacl)补充传统权限,例如给日志分析用户只读/var/log/nginx/的权限,而不加进adm组 - 定期扫描异常权限:运行
find / -type f \( -perm -4000 -o -perm -2000 \) 2>/dev/null查找 SUID/SGID 文件;用find / -xdev -type d ! -perm -755找出权限过松的目录 - 所有权限变更后,用
ls -ld /root /etc /var/www快速复核,避免遗漏

















