/root是root用户专属家目录,属主属组必须为root且权限严格设为700,禁止共享、远程登录及存放敏感信息,须从归属、权限、行为、环境四层面硬隔离。

/root 目录是系统最高权限用户的家目录,它不是“普通用户家目录的放大版”,而是整台服务器最敏感的操作中枢。一旦被越权访问、误修改或植入恶意脚本,可能直接导致权限失控、后门固化甚至全盘沦陷。保护它,核心不是“加把锁”,而是从归属、权限、行为、环境四个层面做硬隔离。
归属与路径本身必须唯一且不可共享
/root 是 root 用户专属路径,不能绑定到其他账号,也不能通过软链接、挂载等方式暴露给非 root 身份。检查命令:
- 确认 root 行在 /etc/passwd 中的 home 字段确实是 /root(不是 /home/root 或其他路径)
- 运行 ls -ld /root,输出应为
dr-x------. 1 root root类似结构,确保属主属组均为 root,且无 group/other 写权限 - 禁止将 /root 设为任何服务的工作目录、日志目录或配置加载路径(如 nginx、cron、systemd user units)
权限必须严格限制:默认即安全,改就容易出错
默认权限 700(dr-x------)已足够,且应保持不变。常见错误包括:
- 误执行
chmod 755 /root→ 允许同组或其他人进入,可能被利用读取 .bash_history、.ssh/config 等敏感信息 - 用
chown nobody:nobody /root或类似操作 → 彻底破坏 root 对自身家目录的控制权,可能导致 su/sudo 失效、shell 初始化失败 - 在 /root 下创建子目录并设为 777 → 即使父目录受限,某些程序(如 scp、rsync)可能绕过父级限制写入
修复建议:若已被误改,直接执行 chown root:root /root && chmod 700 /root,然后检查 ls -ld /root 确认结果。
禁止远程登录 + 禁用交互式 shell 是第一道硬防线
即使 /root 权限正确,只要允许 SSH 直接登录 root,攻击者爆破成功后就能立刻进入该目录。必须做到:
- 编辑 /etc/ssh/sshd_config,确认
PermitRootLogin no(不是 prohibit-password 或 yes) - 检查 /etc/passwd 中 root 行的 shell 字段是否为
/sbin/nologin(不是 /bin/bash 或 /bin/sh) - 本地控制台登录也应设为仅限物理访问,并禁用 getty 服务对 ttyS* 或 serial 控制台的 root 支持
环境变量与历史记录需主动收敛,避免信息泄露
/root/.bash_history、/root/.ssh/、/root/.vimrc 等文件虽在目录内,但它们本身是独立风险点:
- 设置
HISTFILE=/dev/null或HISTSIZE=0在 /root/.bashrc 中,防止命令历史落盘 - /root/.ssh/authorized_keys 必须仅含可信密钥,权限为
600,目录为700;禁用AllowTcpForwarding yes等高危选项 - 避免在 /root 下存放明文密码、API Key、数据库连接串等——这类内容应交由 vault 工具管理,或通过环境注入方式传入脚本


















