2.文件和权限
文件和目录权限
文件是操作系统用来存储信息的基本结构,是一组信息的集合。与其他操作系统相比,Linux系统最大的不同点是没有“扩展名”的概念,也就是说文件的名称和该文件的种类并没有直接的关联。例如,1.txt可能是一个运行文件,1.exe也有可能是一个文本文件,甚至可以不使用扩展名。在Linux系统中,如果文件名以“.”开始,表示该文件为隐藏文件,需要使用“ls -a”命令才能显示。
一个Linux目录或者文件都会有一个所属主(user)和所属组(group)。所属主是指文件的拥有者,而所属组是指该文件的所属主所在的一个组。Linux这样设置文件属性的目的是保证文件的安全。例如,1.txt文件的所属主是zs,而2.txt文件的所属主是ls,那么ls是不能查看1.txt文件的,相应的zs也不能查看2.txt文件。有时我们也会有这样的需求,即使一个文件同时让zs和ls来查看,这如何实现呢?
这时,先创建一个群组shares,让zs和ls同属于shares组,然后建立一个文件3.txt,且其所属组为shares,那么zs和ls都可以访问3.txt文件。Linux文件属性不仅规定了所属主和所属组,还规定了所属主、所属组及其他用户(others)对该文件的权限,可以通过“ ls -l”命令来查看这些属性。
1 | 在当前目录下用touch命令创建一个普通文件2.txt,用mkdir命令创建一个BB目录,用ln命令为2.txt创建软链接到BB目录里,再用“ ls -l”命令查看刚才创建的3个文件,代码如下。 |
1 | (1)第1列:文件类型权限,包含文件所属类型及用户对该文件的权限。第1列共11位,有的文件是10位,即没有最后面的一位“.”(此位与selinux和acl有关)。 |
②后边的9位,每3位为一组,均是“r”“w”“x”三个参数的组合,其中“r”代表可读,“w”代表可写,“x”代表可执行。前三位为所属主(user,u)的权限,中间3位为所属组(group,g)的权限,最后3位为其他非本群组(others,o)的权限。
a.“-rw-r–r–.”代表该文件为普通文件,文件拥有者可读可写不可执行,文件所属组可读不可写不可执行,其他用户可读不可写不可执行。
b.“drwxr-xr-x.”代表该文件为目录。文件拥有者可读可写可执行,文件所属组可读不可写可执行,其他用户可读不可写可执行。
对于一般文件来说,权限比较容易理解:“可读”表示能够读取文件的实际内容;“可写”表示能够编辑、新增、修改、删除文件的实际内容;“可执行”则表示能够运行一个脚本程序。但是,对于目录文件来说,“可读”表示能够读取目录内的文件列表;“可写”表示能够在目录内新增、删除、重命名文件;而“可执行”则表示能够进入该目录。
文件的读、写、执行权限可以简写为rwx,也可分别用数字4、2、1来表示,文件所属主、所属组及其他用户权限之间无关联,具体见表3-6。
文件权限的数字法表示基于字符表示(rwx)的权限计算而来,其目的是简化权限的表示。例如,若某个文件的权限为7,则代表可读、可写、可执行(4+2+1);若权限为6,则代表可读、可写(4+2)。
现在有这样一个文件,其所有者拥有可读、可写、可执行的权限,其文件所属组拥有可读、可写的权限,而其他人只有可读的权限。那么,该文件的权限就是rwxrw-r–,用数字法表示即为764。Linux系统的文件权限相当复杂,但是用途很广泛,建议读者把它彻底搞清楚之后再学习后面的内容。
练一练:
请分别计算数字表示法744、632、453、751所对应的字符表示法,然后把rwxrw-rw-、rw-rw–wx、rw-r-xr–转换成数字表示法。
1 | (1)chown命令用来更改文件的所属主和所属组,该命令操作的语法格式为 |