在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录,在本篇文章中为大家讲解一下Linux中查看文件权限具体方法,有需要的小伙伴可以参考一下。
一、查看文件权限
首先,在终端你输入这个命令
ls -l
得到较为详细的文件信息
就以我的为例子来进行讲解。我们得到了八列信息,我们的重点是文件权限的相关问题,因此对于与文件权限无关的列不做说明。
第一列:文件类型及文件权限(该列由11个字符组成,具体如下)
第一个字符表示文件类型(如上面第二列第一个的第一个字符 - ),其具体为:
d:表示是一个目录。
-:表示这是一个普通的文件。
l: 表示这是一个符号链接文件,实际上它指向另一个文件。
b、c:分别表示区块设备和其他的外围设备,是特殊类型的文件。
s、p:这些文件关系到系统的数据结构和管道,通常很少见到。
文件权限:从第二个字符到最后共9(第2-10个字符)个字符,三个字符为一段:如rw-r--r--
第11个字符:. 与selinux相关,有这个点表示selinux开启,没有这个点表示selinux关闭(
那么这第二到第十个字符这九个权限位是代表了什么意思呢?
回顾一下Linux中用户的概念与文件权限的种类
1.读(r):Read,对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限 ,注意,
对于目录而言,浏览的意思就说,r权限仅仅表示你有权限知道这个目录会有哪些内容,而不代表你就能cd到该目录进行工作,这是x权限才有的。
2.写(w):Write,对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
3.执行(x):execute,对文件而言,具有执行文件的权限;对目录来说,具有进入(cd)目录的权限,
事实上,对于目录来说,如果只有x权限,没有r权限的话,ls指令都执行不了,因为若没r权限,这个目录里的内容就不能读
二、文件权限的相关设置命令
1)chgmod
功能:设置文件的访问权限
使用格式:chgmod [参数] 权限 文件名
常用选项:-R 递归改变目录文件的权限
其使用格式有能分为两种
1.用户表示符 +/=/- 权限字符
例如:
创建一个123.txt文件,查看其文件权限,chmod命令来增加其拥有者的可执行权限,
之后再查看其文件权限
会发现其拥有者就有了可执行权限
2.三位8进制数
ps:特别需要注意的是,只有文件的拥有者和root才能改变文件的权限
2)chown
功能:改变文件的拥有者
格式:chown [参数] 用户名 文件名
常用选项:-R 递归改变文件或目录文件的拥有者
ps:ls -l的第三、四列分别为文件拥有者与所属组
3)chgrp
功能:改变文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归改变文件或目录的所属组
4)umask
功能:查看或修改文件掩码
掩码有啥用?别弄复杂了,简单的说就是这样
新建文件的默认权限 = 0666 – 掩码权限值
新建文件夹的默认权限 = 0777 – 掩码权限值
格式: umask 掩码权限值
将用户现有的文件权限减去掩码权限值后,即可得到新创建文件或文件夹的默认权限。超级用户的默认掩码权限值为0022.普通用户的默认掩码权限值为0002
建议还是不要自己胡改掩码,以免造成不必要的麻烦(比如有人改了后,每次创建文件发现都要手动加可执行,半天又想不起来自己改了掩码 = =),像我在测试后就立马改回来了。
三、粘滞位
chmod +t 文件夹名
这个其实也很简单,不用弄复杂了,什么是粘滞位?
算是对于目录所设置的一种特殊权限
被设置了粘滞位的目录,只能被超级用户、该目录或该文件所有者删除
注意:粘滞位只能对目录设置,对文件设置是无效的