linux中umask值的说明与设置

发布时间 2023-08-14 14:19:53作者: 属于我的梦,明明还在

在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文件中
对已存在文件/目录无效,只会对新建生效。