第一步:认识文件权限说明
使用Linux的同学都知道,在Linux下列出当前目录下的文件和子目录的命令是 ls, 同时 ls 又有许多参数,我们现在要查看文件的类型和权限使用ls -al.
我们可以看到每个文件都有7列的选项,那么我们就来分析这七列内容分别代表的含义;
取其中一行做示范:
-r-xr-xr-x. 5 root root 1024 Dec 24 04:00 test
[类型和属性] [链接数] [属主] [属组][文件大小] [修改时间][文件名]
[编号] 1 2 3 4 5 6 7
-r-xr-xr-x 这个字符串我们需要分成两部分来看,第一部分是第一个字符,代表文件的类型;
linux下文件的类型通常有以下几类:
d : 代表一个目录;
- : 代表一个普通文件;
l : 代表一个普通文件;
b : 代表设备文件里面的可供存储的接口设备;
c : 代表设备文件里的串行端口设备;
比较常见的就是前三种文件类型,那么此时我们知道了test 是一个普通文件;
那么-r-xr-xr-x 剩余的那部分有代表了什么意思呢?代表了文件的权限;
我们可以又将 r-x r-x r-x 分为三部分来看,三个字符一组;
前三个字符代表的是文件的属主(文件的拥有者)的权限:Owner ;
中间三个字符代表文件的属组的同组其它用户的权限: Group;
最后三个字符就代表剩余的其它用户的权限:Others;
r : 代表可读权限,即可以读取文件内容;
w : 代表可修改权限,即可以对文件进行增删查改;
x : 代表文件可执行权限,对于目录又有不同的含义,后面说明;
- : 代表缺省;
那么此时我们就可以了解到 test 文件的权限为,test的属主对它拥有可读可执行权限,test的属组的其它同组用户对它拥有可读可执行权限,而剩余的其它用户对test的权限也是可读可执行;
Linux对文件的权限的表示,一般情况下都是采用我们前面所看到的字符的表示方法,三个字符一组,分别表示文件的属主,属组和其它用户;
第二种方式即将字符对应为二进制的01,同样三个三个一组,为了方便起见,又将三个一组的01转化为8进制表示,这样就可以用3个数字表示文件的权限了;
例如:
字符表示 : -rwx r-x --x
二进制表示: 111 101 001
八进制表示 : 7 5 1
- 1
- 2
- 3
- 4
对于字符到二进制之间的转化关系很简单,即有对应位上有权限即为1 ,没有即为0; 而二进制到八进制的转换就更加简单了,即按照三个二进制向十进制的转换就可以,因为8以下的表示八进制和十进制是一样的;
第二步:使用【chmod】命令改变文件或目录的访问权限
第三步:更改文件的所有者以及所属组
chown 更强的的一点是它可以顺手把属组也改变掉,这样当你希望即改变文件的属主又改变文件的属组的话,就可以执行一条命令了;
![](https://i-blog.csdnimg.cn/blog_migrate/6e50f375ef3ce6a50f2930daf3a42816.png)
第四步:认识umask
第五步:识别特殊权限
第六步:识别文件颜色
颜色不一样,文件的类型也不同。在这里忽略。