0 前言
之前看鸟哥的私房菜,鸟哥有写到:Linux最优秀的地方之一,就在于他的多人多任务环境。Linux身份一般有三个类别,分别是:owner/group/others。那么这三个身份如何查看呢?
当我们登录到Linux,输入ll,即可看到如下图1所示:
图1 Linux文件前信息
那么test.c这个文件前面的信息都是什么玩意呢?且听我详细介绍,如下图2所示,文件前的信息均是尤其含义:
图2 Linux文件前信息含义
1 文件权限介绍
文件权限中的字母又是什么意思呢?在上一节我们已提到Linux身份的话题,这个身份在文件权限中体现的可是淋漓尽致。首先我们看到如下图3所示:
图3 文件权限 图4 文件权限具体含义
那么文件权限的具体含义又是什么呢?其具体含义如图4所示,分别代表文件类型和owner/group/others的权限。
而文件的类型和各个身份的权限分别有哪些情况呢?具体如下表1所示:
文件类型 | 文件权限 |
[d] 代表该文件是目录 [-] 代表该文件是一个文件 [l] 代表该文件是连接文件 [b] 代表装置文件里可提供存储的接口设备 [c] 代表装置文件里的串行端口设备,例如键盘、鼠标 | 首先,文件的权限分为[r/w/x/-],[r]代表可读,[w]代表可写,[x]代表 可执行,[-]代表没有权限。一个身份的权限有3位,分别为[rwx], 若没有其中的某个权限,就在该位写[-]。举例如下: [rw-] 代表可读可写但不可执行 [-wx] 代表不可读,可写可执行 [r-x] 代表可读,不可写,可执行 |
2 进入目录需要哪些权限
首先我们先新建一个目录并将其所有的权限均去掉:
此时,试图使用[cd]指令打开study1目录,发现无法打开
当给study1目录添加[r]与[w]权限时,在试图打开study1目录,发现仍无法完成
接着,我们加入[x]权限,发现可以将study1打开:
我们试图分别去掉[r]与[w]权限,均可打开study1,但当去掉[x]权限时,不可打开study1目录了,详细操作如下图所示:
综上所述,我们可以发现,进入目录仅需要[x]可执行权限。
3 在目录中执行增删查(cd, touch, ls, rm, mv等)改文件动作, 需要哪些权限
3.1 [cd]指令需要的权限
[cd]表示打开,如第二节中的介绍,[cd]指令只需要[x]可执行指令。
3.2 [touch]指令需要的权限
[touch]指令是用于新建一个空的文件夹,[touch]指令需要上级目录有[w]+[x]权限
详细操作如下所示:
由上可知,[touch]指令需要[w]权限,但是在上一节,我们已知[cd]指令需要[x]权限,因此[touch]需要[w]+[x]权限才可。
3.3 [ls]指令需要的权限
[ls]指令用于列出该目录下的文件,[ls]指令需要上级目录有[r]+[x]权限。
具体操作如下所示:
由上可知,[ll](为[ls-a])需要[r]权限,而打开目录需要[x]权限,因此[ls]需要[r]+[x]权限
3.4 [rm]指令需要的权限
[rm]指令用于删除文件和目录,[rm]指令需要上级目录有[w]+[x]权限。
具体操作如下所示:
由上可知,[rm]指令需要[w]权限,而进入目录需要[x]权限,因此[rm]指令需要[w]+[x]权限
3.5 [mv]指令需要的权限
[mv]指令用于对文件与目录重命名和移动,[mv]指令需要上级目录有[w]+[x]权限。
具体操作如下所示:
由上可知,[mv]指令需要[w]权限,而进入目录需要[x]权限,因此[rm]指令需要[w]+[x]权限
3.6 总结
指令 |
需要上级目录具有的权限 |
[cd] |
[x] |
[touch] |
[w]+[x] |
[ls] |
[r]+[x] |
[rm] |
[w]+[x] |
[mv] |
[w]+[x] |
4 总结
以上即是关于Linux权限以及部分指令需要的权限的一点总结,以此拉开Linux学习的目录,希望自己可以坚持。