发布于2026-08-15 阅读(0)
扫一扫,手机访问
chmod 700 /home/username仅修复现有家目录权限,但新创建的文件(默认644)和子目录(默认755)仍可能被他人读取,必须配合umask 077才能确保所有新建内容默认私有。

家目录权限设成 700 是最常见且安全的选择,但直接 chmod 700 /home/username 只能解决已有目录的权限问题;真正要让新创建的文件、子目录也保持私有,必须配合 umask 调整,默认值 022 会生成不安全的 755 目录和 644 文件。
家目录本身权限设为 700 确实能阻止其他用户进入或列出内容,但问题出在后续行为:用户在自己家目录下新建的文件默认是 644、新建目录默认是 755(当 umask 为 022 时)。这意味着别人仍可能读取你的配置文件(如 ~/.bash_history)、日志或临时文件。这不是“家目录没锁好”,而是“钥匙链没管住”。
chmod 700 只影响目标目录本身,不递归,也不影响未来创建的内容/home/username 执行 chmod -R(可能因权限不足失败),且递归修改已有内容风险高(比如改坏 ~/.ssh 的 700 会导致 SSH 拒绝登录)umask 022,它对所有 shell 会话生效,覆盖单次 chmod真正要紧的,不是事后把权限改一遍,而是让系统在一开始就别生成过于开放的权限。这个动作通常靠 umask 来完成,它会在用户登录时由 shell 的初始化脚本载入。配置的优先级顺序是:/etc/login.defs(新用户)→ /etc/profile 或 /etc/bash.bashrc(所有用户)→ ~/.bashrc(仅当前用户)。
~/.bashrc,末尾加一行 umask 077,然后执行 source ~/.bashrc/etc/profile 末尾添加 umask 077,注意不要放在 if [ -n "$PS1" ]; then 块内,否则非交互式 shell 不生效umask,应输出 0077;再建个测试目录 mkdir test && ls -ld test,权限应为 drwx------(即 700)一般情况下,用户按正常方式创建出来后,家目录的属主就是这个用户本人,所属组也会默认对应同名组。比如用户 alice,它的家目录通常就是 alice:alice。只要没有手动用 chown 改过,或者在创建用户时通过 useradd -g othergroup 指定了别的主组,通常就没必要再去动 chown 或 chgrp。
sudo chown root:root /home/alice —— 这会让 alice 自己都进不去家目录~/public_html)共享给 Web 服务,应该只改那个子目录,而不是整个家目录:chmod 755 ~/public_html,并确保其父目录至少保留 x 权限(即 701 或更高)~/.ssh 必须是 700,~/.ssh/authorized_keys 必须是 600,用 umask 077 后这些会自然满足;但若之前已存在宽松权限文件,需单独修复有些系统(尤其是使用 systemd 的发行版)会绕过 /etc/profile,从 /etc/login.defs 读取 UMASK 值来初始化新用户的 umask。而 systemd --user 服务可能有自己的环境,不加载 shell 配置。
/etc/login.defs 中是否有 UMASK 行,如有且值为 022,建议改为 077(影响未来新建用户)~/.profile 或 ~/.pam_environmentgetent passwd username 查看用户实际家目录路径,避免误操作软链接或挂载点(如 /home 单独挂载时,/home/username 可能不在根文件系统上)
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9