银河麒麟系统中控制新创建文件和子目录默认权限需分临时与永久两种方式:临时用umask命令(如umask 002使新建目录为775、文件为664),永久则修改用户级~/.bashrc或系统级/etc/login.defs中的umask值,并确保取消注释后重新登录生效。

您需要在银河麒麟系统中控制新创建文件和子目录的默认权限,避免每次手动调整chmod,比如希望团队协作目录下所有新建文件自动继承组写权限、防止敏感项目目录被误设为全局可写。
用umask命令临时设置当前会话掩码
这一步适用于调试或临时测试,退出终端后失效,适合验证不同掩码值对新建文件的实际影响。
打开终端,直接输入umask查看当前掩码值,例如输出0002表示默认新建文件权限为664、目录为775。
执行umask 002,将掩码设为002:此时新建文件权限变为664(-rw-rw-r--),新建目录变为775(drwxrwxr-x),所属组获得写权限。
执行umask 022,掩码设为022:新建文件变为644(-rw-r--r--),新建目录变为755(drwxr-xr-x),彻底禁用组和其他用户的写权限——这是普通用户安全基线配置。
【注意:umask 000会开放全部默认权限,新建目录变成777,任何用户都能修改删除,切勿在生产环境使用】
永久修改用户级umask配置
让每次登录都自动应用指定掩码,无需重复设置,适用于固定角色的长期工作环境。
第一步:确认当前shell类型,执行echo $SHELL,若返回/bin/bash则编辑~/.bashrc;若为/bin/zsh则编辑~/.zshrc。
第二步:用文本编辑器打开对应配置文件,例如nano ~/.bashrc。
第三步:在文件末尾新增一行:umask 002(根据实际需求替换为002/022/077等)。
第四步:保存并退出,执行source ~/.bashrc立即生效,或新开终端窗口验证。
验证是否成功:在任意位置执行mkdir testdir && touch testfile && ls -ld testdir testfile,观察权限是否符合预期。
系统级统一设置所有用户默认umask
当需强制全系统用户遵循同一安全策略时使用,例如企业IT部门要求所有账户新建文件默认不可被其他用户写入。
编辑全局配置文件:sudo nano /etc/login.defs。
查找UMASK字段,将其值改为所需八进制数,例如UMASK 077表示仅所有者可读写执行,组和其他用户完全无权访问。
该设置对通过login、gdm等标准方式登录的用户生效,但对已运行的会话无效,需重新登录才起作用。
【关键前提:/etc/login.defs中的UMASK行必须取消注释(删掉开头的#号),否则配置不生效】











