Linux 权限入门指南
Linux 安全权限能够指定谁可以对文件或目录执行什么操作。
权限
58.58.197.174
速度好快！
来自山东临沂的 Chrome 77.0|Windows 10 用户
2019-07-04T13:42:42.000
121.69.137.6
学习了
robin [Chrome 77.0|Mac 10.12]
2019-07-04T17:10:32.000
120.229.213.183
复习了，基础的linux知识！
az3901077 [Firefox 67.0|Windows 10]
2019-07-04T18:11:27.000
58.19.0.227
中间一个图里面错了，不是owner，而是others<br />
权限还有sticky bit，还有setuid，setgid
来自湖北武汉的 Chromium 74.0|Ubuntu 用户
2019-07-05T09:57:53.000
58.19.0.227
中间一个图里面错了，不是owner，而是others<br />
权限还有sticky bit，还有setuid，setgid
来自湖北武汉的 Chromium 74.0|Ubuntu 用户
2019-07-05T09:57:58.000
58.19.0.227
中间一个图里面错了，不是owner，而是others<br />
权限还有sticky bit，还有setuid，setgid
来自湖北武汉的 Chromium 74.0|Ubuntu 用户
2019-07-05T09:57:59.000
58.19.0.227
中间一个图里面错了，不是owner，而是others<br />
权限还有sticky bit，还有setuid，setgid
来自湖北武汉的 Chromium 74.0|Ubuntu 用户
2019-07-05T09:58:00.000
58.19.0.227
中间一个图里面错了，不是owner，而是others<br />
权限还有sticky bit，setuid，setgid<br />
文件类型还有block file，socket, link等等
来自湖北武汉的 Chromium 74.0|Ubuntu 用户
2019-07-05T09:59:43.000
180.168.61.243
750 rwx r-w ---????
来自上海的 Chrome 75.0|Windows 10 用户
2019-07-05T10:05:50.000
220.188.54.232
Dj
delrey [Mobile Safari 12.1|iOS 12.3]
2019-07-16T15:10:42.000
183.166.46.42
里面有好多错误，虽然有部分已标注
来自安徽淮南的 Chrome 75.0|Windows 10 用户
2019-07-29T18:19:44.000
113.109.74.36
650
来自广东广州的 Chrome Mobile 74.0|Android 10 用户
2020-03-25T22:48:49.000
Linux 安全权限能够指定谁可以对文件或目录执行什么操作。

> 
> Linux 安全权限能够指定谁可以对文件或目录执行什么操作。
> 
> 
> 


![](/data/attachment/album/201907/04/133751argz0pp7hy5gvv7q.jpg)


与其他系统相比而言 Linux 系统的众多优点中最为主要一个便是 Linux 系统有着更少的安全漏洞和被攻击的隐患。Linux 无疑为用户提供了更为灵活和精细化的文件系统安全权限控制。这可能意味着 Linux 用户理解安全权限是至关重要的。虽然这并不一定是必要的，但是对于初学者来说，理解 Linux 权限的基本知识仍是一个明智之选。


### 查看 Linux 安全权限


在开始 Linux 权限的相关学习之前，假设我们新建了一个名为 `PermissionDemo` 的目录。使用 `cd` 命令进入这个目录，然后使用 `ls -l` 命令查看 Linux 安全管理权限信息。如果你想以时间为序排列，加上 `-t` 选项



```
ls -lt
```

因为这一目录下没有文件，所以这一命令执行不会返回结果。


![No output from ls -l command](/data/attachment/album/201907/04/133824onqym0wm7koo4mju.jpg "No output from ls -l command")


要了解关于 `ls` 命令的更多信息，请通过在命令行中输入 `man ls` 来查看命令手册。


![ls man page](/data/attachment/album/201907/04/133825mz87qpm8yfl1ltyp.jpg "ls man page")


现在，让我们创建两个名为 `cat.txt` 和 `dog.txt` 的空白文件；这一步使用 `touch` 命令将更为简便。然后继续使用 `mkdir` 命令创建一个名为 `Pets` 的空目录。我们可以再次使用`ls -l`命令查看这些新文件的权限。


![Creating new files and directory](/data/attachment/album/201907/04/133826gpy5pmznz2pkm2ok.jpg "Creating new files and directory")


我们需要留意这个命令输出结果的两个部分。


### 谁拥有权限？


首先要注意的是*谁*具有访问文件/目录的权限。请注意下面红色框中突出显示的部分。第一列是指具有访问权限的*用户*，而第二列是指具有访问权限的*组*。


![Output from -ls command](/data/attachment/album/201907/04/133827vze76p5y2ht2yphp.jpg "Output from -ls command")


用户的类型主要有三种：用户、组和其他人（本质上既不是用户也不是组）。还有一个*全部*，意思是几乎所有人。


![User types](/data/attachment/album/201907/04/133832zvk4onr9sorilrli.jpg "User types")


由于我们使用 `root` 作为当前用户，所以我们可以访问任何文件或目录，因为 `root` 是超级用户。然而，通常情况并非如此，你可能会被限定使用你的普通用户登录。所有的用户都存储在 `/etc/passwd` 文件中。


![/etc/passwd file](/data/attachment/album/201907/04/133835fyhfihwy1mwndm1q.jpg "/etc/passwd file")


“组”的相关信息保存在 `/etc/group` 文件中。


![/etc/passwd file](/data/attachment/album/201907/04/133838s9tle7z7971gl1tu.jpg "/etc/passwd file")


### 他们有什么权限？


我们需要注意的是 `ls -l` 命令输出结果的另一部分与执行权限有关。以上，我们查看了创建的 `dog.txt` 和 `cat.txt` 文件以及 `Pets` 目录的所有者和组权限都属于 `root` 用户。我们可以通过这一信息了解到不同用户组所拥有的相应权限，如下面的红色框中的标示。（LCTT 译注：下图的“OWNER”应为“OTHER”）


![Enforcing permissions for different user ownership types](/data/attachment/album/201907/04/133840xaxqsq0wjwotogsz.jpg "Enforcing permissions for different user ownership types")


我们可以把每一行分解成五部分。第一部分标志着它是文件还是目录：文件用 `-`（连字符）标记，目录用 `d` 来标记。接下来的三个部分分别是用户、组和其他人的对应权限。最后一部分是[访问控制列表](https://en.wikipedia.org/wiki/Access-control_list) （ACL）的标志，是记录着特定用户或者用户组对该文件的操作权限的列表。


![Different Linux permissions](/data/attachment/album/201907/04/133844ous5itzx4ss775xx.jpg "Different Linux permissions")


Linux 的权限级别可以用字母或数字标识。有三种权限类型:


* 可读取：`r` 或 `4`
* 可写入：`w` 或 `2`
* 可执行：`x` 或 `1`


（LCTT 译注：原文此处对应的字母标示 `x` 误写为 `e`，已更正）


![Privilege types](/data/attachment/album/201907/04/133849yw1qpeekn1zwqw11.jpg "Privilege types")


每个字母符号（`r`、`w` 或 `x`）表示有该项权限，而 `-` 表示无该项权限。在下面的示例中，文件的所有者可读可写，用户组成员仅可读，其他人可读可执行。转换成数字表示法，对应的是 `645`（如何计算，请参见下图的图示）。


![Permission type example](/data/attachment/album/201907/04/133852x81q1jltqytqy11r.jpg "Permission type example")


以下是一些示例：


![Permission type examples](/data/attachment/album/201907/04/133858u4iaszl7nmm7riln.jpg "Permission type examples")


完成下面的测试，检查你是否掌握了权限管理相关的知识。


![Permission type examples](/data/attachment/album/201907/04/133902qnlp9b9bezzbu2q9.jpg "Permission type examples")




---


via: <https://opensource.com/article/19/6/understanding-linux-permissions>


作者：[Bryant Son](https://opensource.com/users/brson/users/greg-p/users/tj) 选题：[lujun9972](https://github.com/lujun9972) 译者：[qfzy1233](https://github.com/qfzy1233) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出

