在创建文件时,我们总会自主地调用umask(),可是,却不知道为什么要用它,它的作用到底是什么。我想我们只有搞清了为什么,使用时才会更得心应手。
当你新建一个新的文件或目录时,它的默认权限会是什么呢?这就与umask有关了。umask就是指定“目前用户在新建文件或目录时候的权限默认值”。
我们可以使用umask命令来查看数字形态的掩码值,
例如:licong@linux:~$ umask
0022
使用umask -S来查看字符形态的权限,
例如:licong@linux:~$ umask -S
u=rwx,g=rx,o=rx
注意:1. umask不加选项得到的是掩码值,而加选项S得到的是权限。
2. umask打印出的掩码中第一组值是特殊权限。
在默认权限的属性上,目录与文件是不同的。x(执行)权限对于目录是非常重要的。而一般文件通常用于数据的记录,则不应该有执行权限。
1. 若用户创建“文件”,则默认没有可执行(x)权限,即只有读(r)、写(w)两个选项,也就是最大为666。
默认权限为:-rw-rw-rw-
2. 若用户创建“目录”,则由于x与是否可以进入此目录有关,因此默认为所有权限均开放,即为777。
默认权限为drwxrwxrwx
怎样计算掩码值呢?
掩码值 = 默认权限 - 需要的权限 <=> 需要的权限 = 默认权限 - 掩码值 。
例如:umask值为002,请问该umask情况下,新建的文件与目录权限是什么?
解:由于umask为002,所以 需要的权限= 默认权限- 002(掩码值)
下面分情况讨论文件与目录:
文件:权限 = 666 - 002 = 664 <=> -rw-rw-r--
目录:权限 = 777 - 002 = 775 <=> -rwxrwxr-x
阅读(2334) | 评论(0) | 转发(0) |