本文将对Linux中文件和目录的各种权限进行总结。
1. 权限介绍
Linux是一个多用户得操作系统,正确地设置文件权限非常重要。
Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。
Linux为三种人准备了权限——文件所有者,同组用户和其他用户。还有,root用户可以查看、修改、删除所有人的文件,因为它拥有控制一台计算机的完整权限。下面对每一用户进行逐一解释:
文件所有者一般情况下是文件的创建者,但也不一定,可以中途转让文件所有权,这必须直接由root用户来实施。
可以把文件交给一个组,这个组就是文件的属组。组是由一群用户组成的一个集合,文件属组中的用户按照设置对该文件享有特定的权限。
其他用户就是去除前两个用户和root用户外的其他用户,一般其他用户的权限最低。
文件或目录的访问权限分为读取(r),写入(w)和可执行(x)三种。
对于文件而言:
- 读取权限:表示可以打开并查看文件的内容;
- 写入权限:表示可对文件进行修改,但是能否删除和重命名这个文件则是由其父目录的权限设置所控制的。
- 可执行权限:要让一个文件可执行,必须设置其执行权限。可执行文件有两类:可直接由CPU执行的二进制代码和Shell脚本程序。
对于目录而言:
- 读取权限:表示能否列出该目录中的内容;
- 写入权限:表示能否在目录中创建、删除和重命名文件;
- 执行权限:表示能否进入该目录,所以目录的执行权限是最基本的权限。
2. 查看文件和目录权限
每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。使用-l的ls命令可以查看一个文件的属性,包括权限。
举个例子:
查看文件权限:ls -l
这条命名列出了1.txt文件的主要属性信息。下面逐一解释:
第1个字段的第1个字符表示文件类型,“-”表示这是一个普通文件;
第2个字段中rw-r- -r- -就是三组权限位。rw-、r–、r–分别表示属主、属组和其他用户所拥有的权限。r表示可读取,w表示可写,x表示可执行。如果某个权限被禁止,则用短划线”-“代替;
第3个和第4个字段分别表示文件的属主和属组。在本例中,1.txt文件的属主是root用户,属组是root组。
第5个字段所显示的数字表示该文件的链接数目。这里是0,表示该文件没有任何连接。
最后的4个字段分别表示文件大小(0)、最后修改的日期(8月22)、时间(23.15)、以及这个文件的完整路径(1.txt)
查看目录权限:ls -ld
最后,ls -l不加文件名称可以查看当前目录下所有文件(不包括隐藏文件)的属性:
3. 修改文件所有权
chown命令用于改变文件的所有权。chown命令的基本语法如下:
chown OWNER : GROUP FILE
表示将文件FILE的属主更改为OWNER,属组改为GROUP。
举个例子:
将文件1.txt的属主改为yuzhan,而把其属组更改为root组:
如果,只想修改文件的属主,则省略参数“:GROUP”,如果,只想修改文件属组,则省略“OWNER”。
chown命令提供了-R选项,即递归的意思,用于改变一个目录及其下所有文件(和子目录)的所有权限。
4. 修改文件权限
chmod用于改变一个文件的权限,这个命令使用“用户组+/-权限”的表述方式来增加/删除相应的权限。
具体来说:
用户组包括了文件属主(u)、文件属组(g)、其他用户(o)和所有人(a);
权限包括了读取(r)、写入(w)、执行(x)。
举个例子:
增加属主对文件1.txt的执行权限:
chmod u+x 1.txt
删除所有人对1.txt的执行权限:
chmod a-x 1.txt
赋予属主和属组的读写/写入权限,而仅赋予其他用户读取权限:
chmod ug=rw o=r 1.txt
将其他人的权限和属主的权限设为完全一样:
chmod o=u 1.txt
5. 文件类型
LINUX中的七种文件类型:
- 目录文件 : d
- 符号链接 : l
- 套接字文件 : s
- 块设备文件 : b
- 字符设备文件 : c
- 命名管道文件 : p
- 普通文件 : -