umask机制用于设置linux文件默认权限,通过八进制值从基础权限666(文件)或777(目录)中减去对应权限位,如umask 022时文件为644、目录为755;可临时执行umask命令或在~/.bashrc、/etc/profile等配置文件中永久设置,修改后需重新登录或source生效,过严的umask可能影响协作,需合理配置。

在Linux中设置文件默认权限主要通过umask机制实现。umask定义了新创建文件和目录时系统自动屏蔽的权限位,从而决定默认权限。
理解umask的作用
umask值是一个八进制数字,用于从基础权限中减去相应的权限位:
• 文件的基础权限通常是666(即 -rw-rw-rw-)
• 目录的基础权限通常是777(即 drwxrwxrwx)
• 实际默认权限 = 基础权限 – umask值
例如,umask为022时:
• 新文件权限:666 – 022 = 644(-rw-r–r–)
• 新目录权限:777 – 022 = 755(drwxr-xr-x)
临时设置umask
可以在当前shell会话中直接运行umask命令修改:
• 查看当前umask:umask
• 设置新umask:umask 027
这样设置只对当前终端有效,关闭后失效。
永久设置默认权限
要让umask设置长期生效,需写入用户或系统的shell配置文件:
• 修改单个用户:编辑 ~/.bashrc 或 ~/.profile,添加 umask 027
• 系统级设置:编辑 /etc/bash.bashrc 或 /etc/profile,添加全局umask
修改后重新登录或执行 source ~/.bashrc 即可生效。
特殊情况处理
某些服务或脚本可能不读取用户配置文件,这时可通过以下方式设置:
• 在服务启动脚本中显式调用umask
• 使用/etc/profile.d/下的脚本统一管理
注意:设置过严的umask(如077)可能导致协作困难,建议根据实际安全需求权衡。
基本上就这些。


