linux用户家目录默认权限由创建时的umask决定,如umask 077得700、022得755;后续新建文件均遵循同一umask规则,需通过修改~/.bashrc或~/.profile永久设置并用source生效,再以touch和ls -l实测验证。

Linux用户家目录的默认umask不是单独为家目录设置的,而是由系统全局或用户shell初始化时加载的umask值统一控制。家目录本身权限(如drwx------)由创建时的umask决定,后续在其中新建的文件和子目录也遵循同一umask规则。关键在于准确配置并验证生效范围。
家目录初始权限怎么来的
用户首次创建时,系统用当前登录shell的umask值生成家目录。例如umask 077 → 家目录权限为700(rwx------),umask 022 → 权限为755(rwxr-xr-x)。但注意:已存在的家目录权限不会因修改umask而自动变更,只影响之后新建的内容。
为当前用户永久设置家目录相关umask
推荐修改用户级shell配置文件,确保每次登录都应用一致策略:
- 编辑
~/.bashrc或~/.profile,在末尾添加一行:umask 007(仅用户+组可访问)或umask 002(组可写,适合协作) - 保存后运行
source ~/.bashrc立即生效,或重新登录 - 验证是否生效:
umask应输出你设定的值,如0007
验证家目录内新建内容是否符合预期
配置完成后必须实测,避免误解计算逻辑:
- 在家目录下执行:
touch testfile && mkdir testdir - 运行
ls -ld testdir testfile - 对照结果判断:
- umask 007 →
testdir应为drwxrwx---(770),testfile应为-rw-rw----(660) - umask 022 →
testdir应为drwxr-xr-x(755),testfile应为-rw-r--r--(644)
- umask 007 →
特别注意几个易错点
很多问题出在忽略环境差异和作用范围:
- scp、rsync等远程工具不继承本地终端umask,需在目标服务器上单独配置其shell环境
- 图形界面(如GNOME)启动的终端可能读
~/.profile而非~/.bashrc,建议两个文件都检查 - 脚本中临时改umask(如
umask 077)只影响该脚本内部,不影响父shell或家目录本身 - 系统级配置(如
/etc/profile)会影响所有用户,普通用户无权修改,也不建议随意改动











