Linux 文件属性和默认权限(2)

3. umask(遮罩码)命令

如下图:

Linux 文件属性和默认权限

1). 查看方式有两种,一种可以直接输入 umask ,就可以看到数字型态的权限配置分数, 一种则是加入 -S (Symbolic) 这个选项,就会以符号类型的方式来显示出权限了!从第一种方式,我们看到了四组数字,奇怪不应该是三组吗?其实第一组是特殊权限用的,我们暂时不用去管它,在后面的博客中我会详细讲解,先卖个关子!在默认权限的属性上,目录与文件是不一样的。我们知道 x 权限对于目录是非常重要的(不理解的朋友可以看下面,目录与文件的权限意义)!但是一般文件的创建则不应该有运行的权限,因为一般文件通常是用在于数据的记录嘛!当然不需要运行的权限了。因此,默认的情况如下:

若使用者创建为”文件“则默认“没有可运行( x )权限”,亦即只有 rw 这两个项目,也就是最大为 666 ,默认权限如下:   

-rw-rw-rw-

若使用者创建为”目录“,则由于 x 与是否可以进入此目录有关,因此默认为所有权限均开放,亦即为 777 ,默认权限如下:   

drwxrwxrwx

2). 要注意的是,umask 的值指的是“该默认值需要减掉的权限!”因为 r、w、x 分别是 4、2、1 ,所以!也就是说,当要拿掉能写的权限,就是减去2 ,而如果要拿掉能读的权限,也就是减去4 ,那么要拿掉读与写的权限,也就是减去 6 ,而要拿掉运行与写入的权限,也就是减去 3 ,这样了解吗?请问你, 5 是什么?呵呵! 就是读与运行的权限啦!

如果以上面的例子来说明的话,因为 umask 为022 ,所以 user 并没有被拿掉任何权限,不过 group 与 others 的权限被拿掉了 2 (也就是 w 这个权限),那么当使用者:

创建文件时:(-rw-rw-rw-) - (-----w--w-) ==> -rw-r--r-- (666-umask)

创建目录时:(drwxrwxrwx) - (d----w--w-) ==> drwxr-xr-x (777-umask)

以上就是umask作用,你懂了吗?对于r、w、x 分别代表 4、2、1 下面会详细讲解(数字权限)!

4. 目录与文件的权限的重要性

1). 权限对文件的重要性

文件是实际含有数据的地方,包括一般文本文件、数据库内容文件、二进制可执行文件(binary program)等等。 因此,权限对于文件来说,他的意义是这样的:

r (read):可读取此一文件的实际内容,如读取文本文件的文字内容等

w (write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件)

x (execute):该文件具有可以被系统执行的权限

那个可读(r)代表读取文件内容是还好了解,那么可执行(x)呢?这里你就必须要小心啦! 因为在Windows底下一个文件是否具有执行的能力是由扩展名来判断的, 例如:.exe, .bat等等,但是在Linux底下,我们的文件是否能被执行,则是藉由是否具有x这个权限来决定的!跟扩展名是没有绝对的关系的!至于最后一个w这个权限呢?当你对一个文件具有w权限时,你可以具有写入/编辑/新增/修改文件的内容的权限,但并不具备有删除该文件本身的权限!对于文件的rwx来说,主要都是针对文件的内容而言,与文件名的存在与否没有关系喔!因为文件记录的是实际的数据嘛!

2). 权限对目录的重要性

文件是存放实际数据的所在,那么目录主要是储存啥玩意啊?目录主要的内容是在记录文件名的列表,文件名与目录有强烈的关联性! 所以如果是针对目录时,那个 r, w, x 对目录是什么意义呢?

r (read contents in directory):     

表示具有读取目录结构列表的权限,所以当你具有读取(r)一个目录的权限时,表示你可以查询该目录下的文件名数据。 所以你就可以利用 ls 这个指令将该目录的内容列表显示出来!

w (modify contents of directory):     

这个可写入的权限对目录来说,是很了不起的! 因为他表示你具有异动该目录结构列表的权限,也就是底下这些权限:

建立新的文件与目录

删除已经存在的文件与目录(不论该文件的权限为何!)

将已存在的文件或目录进行更名

搬移该目录内的文件、目录位置

总之,目录的w权限就与该目录底下的文件名异动有关就对了啦!

x (access directory):     

目录的执行权限有啥用途啊?目录只是记录文件名而已,总不能拿来执行吧?没错!目录不可以被执行,目录的x代表的是用户能否进入该目录成为工作目录的用途!所谓的工作目录(work directory)就是你目前所在的目录啦!举例来说,当你登入Linux时, 你所在的家目录就是你当下的工作目录。而变换目录的指令是cd(change directory),你能否改变目录,就得看x权限啦,嘿嘿!

linux

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/19822.html