Linux之文件和目录的权限管理

前言

在Linux系统之后,有一个非常非常重要的概念就是:一切皆文件。也就是说,无论在Linux中看到的东西,都是由一个个文件构成的,例如说:命令、用户、各种配置等等。

尽管在Linux系统中一切都是文件,但是每个文件的类型不尽相同,因此Linux系统使用了不同的字符来加以区分


查看文件各种详细属性

每一部分的意思依次为(从左往右看):

  1. 权限信息
  2. 硬连接数(可以理解为存在 n个相同的文件)
  3. 属主:该用户所拥有该文件;
  4. 属组:该组具有哪些用户
  5. 文件大小
  6. 文件创建时间
  7. 文件名

共计七部分的内容,不过文件的属性还不止这些,还有特殊权限、隐藏权限等。


那么,先进入到今天的主题:权限信息


文件权限信息

我们从上面知道,文件的详细信息的第一部分就是权限信息了。但这权限信息的内容,又得分四部分看:

第1位:指明该文件的类型

标识 文件类型
- 普通文件类型
d 代表目录
l 软链接(快捷方式)
b 块设备
p 管道文件
c 字符设备文件

第2-4位:文件的属主对该文件的权限(没有该权限则使用-代表)

描述文件的权限共为三个标志位,分别为:读、写、执行。

标志位 作用
读 r(read) 表示能够读取文件的实际内容
写 w(write) 表示能够编辑、新增、修改、删除文件的实际内容
执行 x(execute) 表示能够运行一个脚本程序

注意:目录文件的权限和文件的权限控制并不相同,等下我们后面会说。


第5-7位:文件的属组对该文件的权限(group)

第8-10位:其他用户对该文件的权限(other)

注意:

一般来说,文件由谁创建的,属主和属组就是该用户,只有文件的属主才能修改权限(root 用户不受权限限制)



目录的权限管理

目录的权限管理和文件的权限管理的标志位含义并不相同。

对目录下的文件操作,只跟目录的权限有关;对于目录下的文件内容操作,那是与文件操作相关的。比方说:文件能否被删除并不取决于自身的权限,而是看其所在目录是否有写入权限。

  • r:可以查(ls)看目录所拥有的文件
  • w:可以在该目录下创建、删除或重命名(修改文件不是,因为作用于文件本身,是属于文件操作的)
  • x: 可以使用cd命令切换该目录下




属主属组的权限管理

对于相同的一个文件来说,打开的人不同,其权限也大不相同。我们可以把文件的权限(rwx)看做属性,既然是属性,那么我们就可以对其进行修改。

  • 修改文件属主:chmod [参数] 权限设置 文件或目录名称
  • 修改文件属组:chown [参数] 所有者:所属组 文件或目录名称

修改属主:

  • +:表示加入权限
  • -:表示去掉权限
  • =:表示设定权限

修改属组

  • 这样,我们就把文件的属组从普通用户更改为 root 了

基于数字级的修改

rwx权限,也可以使用数字进行表示(4、2、1)

  • 以上的664就代表 “-rw-rw-r–”这样的权限信息描述。