umask和chmod一样,文件权限可以用数字指定,也可以用字符指定,但是umask对两种指定方式的使用有所不同.
用数字指定的话,文件的权限就是777(对文件夹)或666(对文件)与该数字取反后逻辑与的结果,例如
$ umask 123 $ touch umask.test.1 $ ls -l umask.test.1 -rw-r--r-- 1 Administrator None 0 Mar 17 19:59 umask.test.1 $ mkdir umask.test.2 $ ls -ld umask.test.2 drw-r-xr--+ 2 Administrator None 0 Mar 17 19:59 umask.test.2 |
123写成二进制即 001 010 011 (权限的最大值是7,所以用3位就足够了), 取反后即110 101 100; 对于新建的文件,无论umask如何设置,都是不能有执行权限的,文件的可执行权限必须另外用chmod增加,所以文件的最大权限值只能是666. 666即110 110 110, 110 101 100 AND 110 110 110 = 110 100 100, 即rw-r--r--. 所以文件umask.test.1即rw-r--r--. 对于文件夹, 权限的最大值为777, 即 111 111 111, 110 101 100 AND 111 111 111 就是110 101 100, 即 rw-r-xr--,所以文件夹umask.test.2的权限是rw-r-xr--.
用字符指定权限的话,文件的权限就是umask指定的权限,不用经过任何运算
$ umask u-r,g=w,o+w $ touch umask.test.3 $ ls -l umask.test.3 --w--w-rw- 1 Administrator None 0 Mar 17 20:22 umask.test.3 $ mkdir umask.test.4 $ ls -ld umask.test.4 d-w--w-rw-+ 2 Administrator None 0 Mar 17 20:22 umask.test.4 |
在用数字指定权限那个例子后,新建的文件的默认权限是rw-r--r--,新建的文件夹的权限是rw-r-xr--;然后,在现在这个例子中,umask指定了u-r,g=w,o+w, 所以新建的文件的权限就是-w--w-rw-, 新建的文件夹的权限就是-w--w-rw-
转载请注明出处 http://fornote.blogspot.com
没有评论:
发表评论