通过上面的介绍,我们知道了Linux系统内针对文件有三种身份:文件拥有者、文件所属用户组和其他人,每种文件身份都有读写执行三种权限(rwx)。 可以用chown, chgrp, chmod命令修改文件的权限与属性,用 ls -al命令查看文件的详细信息。 文件权限对文件数据的安全至关重要。但是,普通文件权限与目录文件权限在含义上有一些区别。

1.普通文件的权限

普通文件是实际存放数据的地方,包括一般文本文件、数据库内容文件、二进制可执行文件(binary program) 等。 权限对于普通文件的含义如下:
r (read):可读取文件的实际内容,例如用cat或者vim命令读取文本文件的内容;
w (write):可以编辑、新增或者是修改文件的内容(但不含删除该文件);
x (eXecute):该文件具有可以被系统执行的权限。
普通文件的可读权限r比较容易理解,可写权限w表示可以编辑修改该文件的内容,但是并不表示可以删除该文件。 因为删除一个文件实际上是改变了包含该文件的目录的内容,需要对目录文件具备写权限。 可执行权限位x表示文件可以被执行,相应的用户具有执行该文件的权限.但是文件能不能被成功执行还要取决于文件的内容, 只有二进制可执行文件和脚本文件(例如shell脚本)才能被执行.普通的文本文件,即使可执行权限位设置了x,但是很明显该文件也是无法被执行的, 因为文件中没有可以被执行的计算机程序代码.
我们能够顺利的执行linux系统的命令,是因为命令相对应的二进制可执行文件都设置了可执行权限x. 我们经常会从网络上下载可执行程序文件,但是有时候下载下来了却无法执行,这时候就要查看一下下载的可执行文件是否具备可执行权限属性.
另外x对文件和目录的意义也有所不同.如果文件是目录,并且设置了x位,表示相应的用户可以通过cd命令进入该目录.如果要想往该目录中创建新文件,就看要有没有写权限. 关于目录的可执行权限,我们后面还会做更详细的介绍.这里先大概了解一些基本的内容即可.

2.目录的权限

我们知道目录也是文件,目录文件中存放的是该目录下所有文件的文件名列表。权限对目录文件的含义如下:
r(read contents in directory):表示具有读取目录结构列表的权限,所以当你具有读取(r)一个目录的权限时,就可以利用ls命令查询该目录下的文件名列表。
w(modifycontents of directory): 目录可写权限表示用户可以对该目录内容进行更改的权限,这些更改操作包括:
  • 建立新文件与新目录,例如用touch或者vim命令创建新文本文件,利用mkdir命令创建新目录;
  • 利用rm命令删除已经存在的文件与目录(不论该文件的权限为何!)或者用rmdir命令删除目录
  • 用mv命令将已存在的文件或目录进行更名;
  • cp或者mv命令移动目录内的文件或者目录。
总之,目录的w权限与该目录下的文件名变动有关。
x(access directory): 目录不可以被执行,目录的x权限表示用户能否通过cd命令进入该目录,使其成为工作目录! 工作目录(work directory)就是当前工作目录,在命令行下通过pwd命令可以打印当前工作目录。 用户登入Linux时, 首先会进入用户家目录,此时用户家目录就是当前工作目录。通过cd(change directory)命令就可以切换当前工作目录。 如果将目录比作抽屉,那么这个目录的可执行权限就相当于抽屉的钥匙,只有获取了钥匙才能打开抽屉,只有获取了目录的可执行权限,才可以进入该目录。
总之,文件的权限是针对文件内容设计的,而目录权限是针对目录内的文件名列表设计的。

initroot编辑整理,转载请注明www.initroot.com