UP | HOME

Linux 文件权限

目录

1 简介

Linux 的学习过程中,文件权限是一个很重要的概念,毕竟 Linux 中的各种操作都离不开权限的支持。

这篇博客算是对 Linux 文件权限学习的一个简单总结。

2 用户与用户组

Linux 的文件权限是和 用户与用户组 密切相关的一个概念,对于一个文件来说,用户可以分为三类:

  • 文件的 拥有者 - user
  • 文件的拥有者所在 用户组 的其他成员 - group
  • 拥有者用户组 成员以外的其他用户 - others

文件权限是相对于这三类用户而言的,不同身份的用户可以具有不同的权限。

3 文件属性

使用命令 ls -l 可以得到文件的详细信息,比如:

drwxr-xr-x 5 root root 4096 Sep  7 19:52 dotemacs
drwxr-xr-x 6 root root 4096 Sep  3 22:34 dotfiles
drwxr-xr-x 9 root root 4096 Sep 11 10:19 emacs-kit

我们可以把每一条信息分为 8 个部分,比如上面第一条信息可以分为:

文件类型 权限信息 连结数 拥有者 用户组 文件容量 修改日期 文件名
d rwxr-xr-x 5 root root 4096 Sep 7 19:52 dotemacs

这里主要了解 文件类型权限信息, 对其他部分有兴趣的可以自行 Google.

4 文件类型

Linux 中文件可以分为 5 个类型, ls -l 输出的每条信息中的 第一个字符 就用于表示文件类型。

各个文件类型及其字符表示为:

表示字符 文件类型
d 目录
- 文件
l 符号链接等
b 可供储存的接口设备
c 串行端口设备,如键盘、鼠标等

5 权限信息

通过 用户与用户组 概念可以了解到权限是相对于三类用户而言的,因此 ls -l 显示的权限信息也分为三组。

每个文件的 权限信息9 个字符组成,分为三组,分别对应 拥有者, 用户组, 其他人 拥有的权限。

对于权限信息 rwxr-xr-x 来说, 拥有者 的权限为 rwx, 用户组其他人 的权限为 r-x.

每组权限分为: 读权限, 写权限执行权限, 分别由字符 r, w, x 表示。如果不具有相应的权限,就使用字符 - 表示。

因此,权限信息 rwxr-xr-x 可以理解为: 拥有者 具有 , 执行 权限,而 用户组其他人 就只有 执行 的权限。

6 修改文件拥有者和所属用户组

命令 chownchgrp 可以用于修改文件拥有者和所属用户组,使用方式也很简单:

# 修改文件拥有者
$ chown [-R] 账号名称 文件或目录
$ chown [-R] 账号名称:组名 文件或目录

# 修改文件所属用户组
$ chgrp [-R] 用户组名称 文件或目录

参数 -R 进行递归的持续变更,即连同次目录下的所有文件都变更。

7 修改文件权限

命令 chmod 用于修改文件的权限,并提供了两种修改文件权限的方式。

7.1 数字类型改变文件权限

我们可以用数字来代表各个权限,各个权限对应的数字为:

r:4
w:2
x:1

每种身份各自的三个权限分数是需要累加的,例如当权限为 rwxrwx--- 时,对应的分数为:

user   = rwx = 4+2+1 = 7
group  = rwx = 4+2+1 = 7
others = --- = 0+0+0 = 0

得到的文件权限数字也就为 770, 修改权限时就可以使用这个数字完成:

$ chmod [-R] 770 文件或目录

很明显,这样修改文件权限是很麻烦的,因此 chmod 提供了另一种更好用的方式来修改文件权限。

7.2 符号类型改变文件权限

符号类型改变文件权限需要遵循一定的语法规则,分别需要了解的有 身份表示符, 操作表示符权限表示符.

身份表示符:

表示符 代表的身份
u 文件的拥有者
g 文件的拥有者所在用户组
o 其他人
a 所有用户

操作表示符:

表示符 代表的操作
+ 添加权限
- 去除权限
= 设定权限

权限表示符 就是 r, wx.

从表示符的组成大概也可以猜到怎样修改文件权限了,比如说下面的这条指令让拥有者具有所有权限,而为用户组和其他人添加执行权限:

chmod u=rwx,go+x .vimrc

需要注意的是: u=rwx,go+x 之间没有空格。

8 权限的作用

同一个权限对于 文件目录 来说,含义是不一样的,这里来了解一下。

权限 文件 目录
r 可以读取文件内容 可以读取目录结构列表
w 可以编辑修改文件内容 可以改动目录结构列表
x 可以被系统执行 用户可以进入目录 (cd)

这里需要注意的一个权限是: 可以改动目录结构列表, 这意味着可以:

  • 建立新的文件与目录
  • 删除已经存在的文件与目录
  • 将已存在的文件或目录进行更名
  • 搬移该目录内的文件、目录位置

所以 w 这个权限还是慎重使用好了。

9 参考链接

版权声明:本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可