Linux_文件与目录属性

Linux中有一句名言,“所有的东西都是文件”。那么我们对文件和目录的了解就要透彻深入了。

在Shell中,我们输入命令:ls -al。这个命令的意思就是列举当前目录下所有的文件(包括隐藏的)并且列出长数据串,包含文件的属性及权限等数据。第一列就是文件的权限,可以看到“drwxr-x—”,“-rwxr-x—”等字符串。那么这段字符串有何意义呢?

这串字符串的长度为10,第一个表示文件的种类,‘d’代表目录(Directory),‘-’代表纯文本文件,也就是ASCII码文件。后9个字符每三个一组,分别表示所有者的权限,用户组的权限,其他人的权限。这个地方你可能会有疑惑,目录算文件吗?这个当然算啦,文件是存放实际数据的地方,目录主要的内容是记录文件名列表。这当然也是数据。那么文件的各种权限会产生什么具体现象呢。

刚说了,三个一组的字符串对应的三个字符就是‘r’-可读,‘w’-可写,‘x’-可执行。如果不具备该权限就用‘-’替代。

对于文件而言,着重的要讲的就是‘w’和‘x’。如果有‘w’权限,那么可以对其进行修改,但是不能进行删除该文件的操作。这是因为这三个属性都是针对文件的内容而言的。与文件名的存在没有关系。那么如果要对该文件有删除的权限,就得该文件的目录有‘w’权限;如果有‘x’权限,那么这个文件就有可执行的权限,但是有可执行的权限并不一定代表这个文件就一定能执行成功。这个理要清楚,因此我们可以通过一些命令来修改这个权限来使文件执行不了。

对于目录而言,只有‘r’权限没有‘x’权限的话,那么只能查阅该目录下的文件列表且无法读取完整的文件属性,更别说切换到该目录下了。因此在给别人目录权限的时候可以给‘r’和‘x’。但是‘w’权限不能乱给,理由前面已经说了。

那么,知道了文件目录的属性权限,如何去修改这些权限呢。Linux中提供了chgrp(改变文件所属用户组)、chown(改变文件所有者)、chmod(改变文件的权限)。chgrp,chown不用多说,都知道该,但是要注意的是参数:”-r”。这个参数有递归的意思,就是可以递归改变一系列的值,而且你修改的所有者和用户组必须存在于Linux中,不然是不能修改成功的。重点我们来说下chmod。

chmod,这个命令有两种参数形式。一、二进制形式,我们把权限分成了三组,每组三个字符,分别对应二进制的低三位,也就是r:4,w:2,x:1。我们读出这个三位的二进制就是了(最大也就是7),又因为有三组,因此,参数就是一个三位数;二、字符形式。权限分成三种的,分别是:所有者-u,用户组-g,别的人-o。最后还有一个a-所有的权限。这个时候我们的‘+’-加入,‘-’-除去,‘=’-设置要派上用场了。举个例子”chmod u=rwx,go+x,a-r filename“。就是这么用的。

总之,文件与目录的属性很关键,我也是刚学Linux。觉得受益匪浅。陆续我也会继续更新我所学到的知识的。

你可能感兴趣的:(linux)