在Linux系统中umask值代表的是我们创建新文件/目录的默认权限设置,系统root账号默认的umask的值为0022 普通账号的umask的值为0002、查看umask值
使用命令umask命令可以查看当前帐号umask的值
[root@RedHat8-2 ~]# umask 0022 [root@RedHat8-2 ~]# umask -S u=rwx,g=rx,o=rx [root@RedHat8-2 ~]# su - stu10 Last login: Fri Jun 11 14:05:19 CST 2021 on pts/0 [stu10@RedHat8-2 ~]$ umask 0002 [stu10@RedHat8-2 ~]$ umask -S u=rwx,g=rwx,o=rx
可以看到umask值有四位数字,第一位数字代表的是特殊权限忽略,后三位数字为我们看到的文件/目录的默认权限。
账号能有的目录最大权限为777,文件能有的最大权限为666,我们根据此权限对应umask的值就能够计算出该账号的默认文件/目录权限。
root:目录 777-022=755 root:文件 666-022=644 stu10:目录 777-002=775 stu10: 文件 666-002=664 权限对应数字 rwx rwx rwx 第一部分(user) 读: r-- 4 第二部分(group)写: -w- 2 第三部分(其它) 执行: --x 1
简而言之:umask 决定创建新文件/目录的默认权限
但是这种方式并不能永久更改umask的值,只是将当前的shell临时更改
如果要永久更改umask的值,可以将命令添加至/etc/profile或/etc/bashrc文件中
对已存在文件/目录无效,只会对新建生效。