Linux 文件属性的学习记录
今天继续自己学习Linux的课程,学习到Linux的文件权限,今天要了解Linux 的文件属性,需先了解“ls”命令。在以root的身份登入Linux之后,输入“ls -al“,会看到下面的内容:
-rw-r--r--. 1 root root 129 May 11 2019 .tcshrc
[ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ]
[ 属性 ] [连接] [拥有者] [用户组] [文件大小] [修改日期] [文件名]
ls 是 ”list“的意思,与早期DOS的命令dir功能类似。参数”-al“则表示列出所有的文件(包括隐藏文件,就是文件名前面第一个字符为 . 的文件)。如上所示,在第一次以root身份登入 Linux时,如果输入命令后,应该出现上面的内容,先解释下上面7个字段的意思。
1. 第一列表示这个文件的属性:这个地方最需要注意。仔细看的话,应该可以发现这一列其实共有10个属性。
第一个属性表示这个文件是”目录、文件或连接文件等“:
[d],则是目录,例如上面列表的第11行;
[-],则是文件,例如上面列表的第5行;
[l],则表示为连接文件(link file);
[b],则表示为设备文件中可供存储的接口设备;
,则表示为设备文件中的串行端口设备,例如键盘、鼠标。
接下来的属性中,3个为一组,且均为”rwx“3个参数的组合。其中,[r]表示可读(read)、[w]表示可写(write)、[x]表示可执行(excute)。
第一组为”拥有者的权限“,以第5行为例,该文件的拥有者可以读写,但不可执行。
第二组为”同用户组的权限“。
第三组为”其他非本用户组的权限“。
范例:若有一个文件的属性为”-rwxr-xr--“,说明如下:
1. 表示这个文件名为目录或文件(上面为文件)。
234:拥有者的权限(上面为可读、可写、可执行)。
567:同用户组用户权限(上面为可读可执行)。
890:其他用户权限(上面为仅可读)。
上面的属性表示一个文件,这个文件的拥有者可读、可写、可执行,但同用户组的人仅可读与执行,非同用户组的用户仅可读。
除此之外,需要特别注意的是x。若文件名为一个目录的时候,例如.ssh目录:
可以看到这是一个目录,而且只有root可以读写与执行。但是,若为下面的样式时,请问非root的其他人是否可以进入该目录呢?
似乎是可以。因为有可读[r]存在。”错“。答案是非root账号的其他用户均不可以进入.ssh目录。为什么呢?因为x与目录的关系相当重要,如果在该目录下不能执行任何命令的话,那么自然也就无法进入了。因此,请特别注意,如果想对他人开放某个目录的话,请记住,开放该目录的x属性。目录权限的相关说明,我们会在下面继续介绍。
需要小心的是,在windows中,一个文件是否具有执行的能力是通过”扩展名“来决定的,例如.exe、.bat、.com等。但在Linux中,文件是否能执行,则是通过是否具有x属性来决定的,所以,与文件名没有绝对的关系,这点要特别注意。稍后我们还会对目录进行介绍。
2. 第二列表示连接占用的节点(i-node):这与连接文件(link file)有关,如果是目录的话,那么就与该目录下还有多少目录有关。
3. 第三列表示这个文件(或目录)的”拥有者“。
4. 第四列表示拥有者的用户组。
这里再次解释一下,在Linux中,ID(如root或test等账号均是ID)即是您的身份,而且还可以附属在一个或多个用户组之下。
5. 第五列为这个文件的大小。
6. 第六列为这个文件的创建日期或者是最近的修改日期,分别为月份、日期及时间。
7. 第七列为这个文件的文件名。
Linux 文件属性的学习记录:等您坐沙发呢!