linux全局umask设置需双层协同:一是在/etc/login.defs设umask 027或077控制新用户起点;二是通过pam(/etc/pam.d/common-session或system-auth)加载pam_umask.so覆盖su/sudo/cron等非标准登录,并须实测新建文件目录权限验证。

Linux 中查看和修改系统全局 umask 值,不能只靠 umask 命令——它只显示当前 shell 会话的值,不反映系统级默认设置。真正的全局配置需从账号创建起点和登录流程两个层面入手,且必须协同生效。
一、查看当前生效的全局 umask 设置
直接运行 umask 不够,要确认实际新建文件/目录权限是否符合预期:
- 新开一个干净终端(如 SSH 重连),避免继承旧会话环境
- 执行:
umask && touch testf && mkdir testd && ls -ld testf testd - 观察结果:
– 若期望是协作安全模式(027),应得-rw-r-----(文件)和drwxr-x---(目录)
– 若期望是高敏隔离模式(077),应得-rw-------和drwx------
二、修改新用户默认 umask:改 /etc/login.defs
该文件控制 useradd 创建的新用户首次登录时的 umask,是账号生命周期的安全基线:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 编辑
/etc/login.defs,确保存在未注释行:UMASK 027(或077) - 此设置对已有用户无效,仅影响后续新建账户
- 建议同时启用私有组机制:
USERGROUPS_ENAB yes,防止组权限意外扩散
三、覆盖非标准登录场景:配 PAM 模块
/etc/login.defs 在 su -、sudo -i、systemd --user 或 cron 子 shell 中通常不生效。PAM 是唯一可靠手段:
- Debian/Ubuntu 系统:在
/etc/pam.d/common-session末尾添加session optional pam_umask.so umask=0027 - RHEL/CentOS 系统:在
/etc/pam.d/system-auth的session段添加同上行 - 若系统无
pam_umask.so(如旧版 Ubuntu),先安装:apt install libpam-umask或yum install pam
四、注意非交互式脚本的特殊处理
crond、systemd timer、后台服务启动的脚本默认不读 shell 配置文件,umask 不自动继承:
- 必须在脚本开头显式声明:
#!/bin/bash<br>umask 0027<br># 后续命令...
- 不要依赖
~/.bashrc或/etc/profile,它们在非交互式环境中通常被跳过










