chmod 700 /home/username仅修复现有家目录权限,但新创建的文件(默认644)和子目录(默认755)仍可能被他人读取,必须配合umask 077才能确保所有新建内容默认私有。

如何在Linux中设置具体的用户家目录权限

家目录权限设成 700 是最常见且安全的选择,但直接 chmod 700 /home/username 只能解决已有目录的权限问题;真正要让新创建的文件、子目录也保持私有,必须配合 umask 调整,默认值 022 会生成不安全的 755 目录和 644 文件。

为什么 chmod 700 /home/username 不够用

家目录本身权限设为 700 确实能阻止其他用户进入或列出内容,但问题出在后续行为:用户在自己家目录下新建的文件默认是 644、新建目录默认是 755(当 umask022 时)。这意味着别人仍可能读取你的配置文件(如 ~/.bash_history)、日志或临时文件。这不是“家目录没锁好”,而是“钥匙链没管住”。

如何永久设置家目录新建内容的默认权限

真正要紧的,不是事后把权限改一遍,而是让系统在一开始就别生成过于开放的权限。这个动作通常靠 umask 来完成,它会在用户登录时由 shell 的初始化脚本载入。配置的优先级顺序是:/etc/login.defs(新用户)→ /etc/profile/etc/bash.bashrc(所有用户)→ ~/.bashrc(仅当前用户)。

chown 和 chgrp 通常不需要动家目录所有权

一般情况下,用户按正常方式创建出来后,家目录的属主就是这个用户本人,所属组也会默认对应同名组。比如用户 alice,它的家目录通常就是 alice:alice。只要没有手动用 chown 改过,或者在创建用户时通过 useradd -g othergroup 指定了别的主组,通常就没必要再去动 chownchgrp

容易被忽略的细节:login.defs 和 systemd-user 的干扰

有些系统(尤其是使用 systemd 的发行版)会绕过 /etc/profile,从 /etc/login.defs 读取 UMASK 值来初始化新用户的 umask。而 systemd --user 服务可能有自己的环境,不加载 shell 配置。

本文转载于:https://www.php.cn/faq/2988230.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。