设置用户家目录初始权限为umask 077,核心是让新用户创建的文件和目录默认仅属主可访问(文件600、目录700),同时需手动chmod 700 /home/用户名收紧已有家目录权限;须通过/etc/login.defs设umask 077控制新用户、pam配置覆盖su/sudo/cron等全路径场景、并实测touch/mkdir验证结果。

设置用户家目录的初始权限为 umask 077,核心是让新用户创建的文件和目录默认仅属主可访问(文件 600、目录 700),同时需配合家目录本身权限收紧(chmod 700 /home/用户名)——因为 umask 只管“新建”,不管已有内容。
一、配置新用户的默认 umask(/etc/login.defs)
该设置影响所有后续用 useradd 创建的用户,是初始安全基线:
- 编辑
/etc/login.defs,确保存在未注释行:UMASK 077 - 顺带确认:
USERGROUPS_ENAB yes(启用私有用户组,避免组权限意外继承) - 注意:此配置对已有用户无效,只作用于新用户首次登录时的 shell 会话
二、强制全路径生效(PAM 配置)
/etc/login.defs 不覆盖 su -、sudo -i、cron 或 systemd 用户服务等场景,必须补 PAM:
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- Ubuntu/Debian 系统:编辑
/etc/pam.d/common-session,追加一行:session optional pam_umask.so umask=0077 - RHEL/CentOS 系统:编辑
/etc/pam.d/system-auth,在session段添加同上行 - 如提示模块缺失(如 Ubuntu),先安装:
apt install libpam-umask
三、收紧已有家目录及关键隐藏文件权限
umask 077 不改变已存在的文件或目录权限,必须手动修复:
- 家目录本身:
chmod 700 /home/用户名 - 敏感隐藏文件:
chmod 600 ~/.bash_history ~/.ssh/authorized_keyschmod 700 ~/.ssh ~/.gnupg - 若用户已存在且登录过,建议其重新登录,或重启其用户 session(如
loginctl terminate-user 用户名)
四、验证是否真正生效
不能只运行 umask 命令看输出值,要实测创建行为:
- 新开干净终端(如 SSH 重连),执行:
umask && touch testf && mkdir testd && ls -ld testf testd - 预期结果:
文件应为-rw-------(600),目录应为drwx------(700) - 若不符,检查是否被
~/.bashrc或/etc/profile中其他 umask 设置覆盖










