文件和目录权限umask的计算方法

umask 值和文件目录权限的最简单的计算方法

linux中默认创建的目录的权限为755

[root@moban data]# mkdir a
[root@moban data]# ll
total 4
drwxr-xr-x. 2 root root 4096 Apr 23 13:09 a

linux中默认创建的文件的权限为644

[root@moban data]# touch a.txt
[root@moban data]# ll
total 4
-rw-r--r--. 1 root root 0 Apr 23 13:11 a.txt

cent os 6.5中umask的值为0022

但是有个前提:在/etc/profile里有一句话:

if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 002
else
umask 022
fi

所以我的用户root,他的默认umask值为0022

[root@moban data]# id -gn
root
[root@moban data]# id -un
root

linux中对/home目录的umask权限为077,这是在/etc/login.defs里有明确注明

[root@moban home]# ls -ld test
drwx------. 2 test test 4096 Apr 7 22:46 test

最简单的方法:“加减法”

 

1、当umask值每一位为偶数时:

文件的计算方法:把最大的权限当为666来计算。

例:把umask值设为066

[root@moban data]# umask 066
[root@moban data]# umask
0066
[root@moban data]# touch 066file
[root@moban data]# ls -l 066file
-rw-------. 1 root root 0 Apr 23 13:32 066file

解:666-066=600  600就是这个文件的权限。

 

目录的计算方法:把最大的权限当为777来计算。

[root@moban data]# umask 044
[root@moban data]# umask
0044
[root@moban data]# mkdir 044dir
[root@moban data]# ls -ld 044dir
drwx-wx-wx. 2 root root 4096 Apr 23 13:34 044dir

解:777-044=733  733就是这个目录的最大权限。

 

2、当umask值每一位为奇数时:

文件的计算方法:666为最大权限

例:把umask改为043

[root@moban data]# umask 043
[root@moban data]# umask
0043

[root@moban data]# touch 043file
[root@moban data]# ls -l 043file
-rw--w-r--. 1 root root 0 Apr 23 13:39 043file

解:666-043=623   在奇数位上加1 =624

 

目录的计算方法:777为最大权限

例:把umask改为043

[root@moban data]# umask 043
[root@moban data]# umask
0043
[root@moban data]# mkdir 043dir
[root@moban data]# ls -ld 043dir
drwx-wxr--. 2 root root 4096 Apr 23 13:39 043dir

解:777-043=734   这个不影响哈。

 

总结:

umask值的每一位为偶数时:

文件的权限计算方法:666减去umask值

目录的权限计算方法:777减去umask值

umask值有奇数时:

文件的权限计算方法:666减去umask值,然后在结果的基础上,在umask的奇数位上+1

目录的权限计算方法:777减去umask值,目录不影响

 

posted @ 2016-04-23 13:48  单机才牛  阅读(1238)  评论(0编辑  收藏  举报