Linux 权限新手指南

Linux 安全权限指定谁可以对文件或目录执行哪些操作。
209 位读者喜欢这篇文章。
Why the operating system matters even more in 2017

互联网档案馆书籍图片。 由 Opensource.com 修改。 CC BY-SA 4.0

Linux 系统的主要优点之一是,与其它系统相比,它们不易受到安全漏洞和攻击。Linux 确实为用户提供了对其文件系统的安全权限的更多灵活性和精细控制。这可能意味着 Linux 用户理解安全权限至关重要。 不一定非得如此,但对于初学者来说,了解 Linux 权限的基础知识仍然是明智的。

查看 Linux 安全权限

要开始学习 Linux 权限,假设我们有一个新创建的名为 PermissionDemo 的目录。 在目录中运行 cd 并使用 ls -l 命令查看 Linux 安全权限。 如果你想按修改时间排序,请添加 -t 选项。

ls -lt

由于此新目录中没有文件,因此该命令不返回任何内容。

No output from ls -l command

要了解有关 ls 选项的更多信息,请在命令行中输入 man ls 来访问其手册页。

ls man page

现在,让我们创建两个文件:cat.txtdog.txt,内容为空; 使用 touch 命令可以很容易地做到这一点。 让我们还使用 mkdir 命令创建一个名为 Pets 的空目录。 我们可以再次使用 ls -l 命令来查看这些新文件的权限。

Creating new files and directory

我们需要注意此命令输出的两个部分。

谁有权限?

要检查的第一件事是有权访问该文件/目录。 请注意下面红色框中突出显示的部分。 第一列指的是有权访问的用户,第二列指的是有权访问的

Output from -ls command

主要有三种类型的用户:用户其他(本质上既不是用户也不是组)。 还有一种:所有,这意味着实际上每个人。

User types

因为我们使用 root 作为用户,所以我们可以访问任何文件或目录,因为 root 是超级用户。 但是,通常情况并非如此,您可能会被限制为您的用户名。 所有用户的列表都存储在 /etc/passwd 文件中。

/etc/passwd file

组维护在 /etc/group 文件中。

/etc/passwd file

他们有什么权限?

我们需要注意的 ls -l 的另一个输出部分与强制执行权限有关。 上面,我们确认了我们创建的文件 dog.txt 和 cat.txt 以及目录 Pets 的所有者和组权限属于 root 帐户。 我们可以使用有关谁拥有什么的信息来强制执行不同用户所有权类型的权限,如下面的红色框中突出显示的那样。

Enforcing permissions for different user ownership types

我们可以将每一行分解为五个信息位。 第一部分指示它是文件还是目录; 文件用 -(连字符)标记,目录用 d 标记。 接下来的三个部分分别指的是 用户其他 的权限。 最后一部分是访问控制列表 (ACL) 的标志,它是对象的权限列表。

Different Linux permissions

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

  • 读取: r 或 4
  • 写入: w 或 2
  • 执行: x 或 1

Privilege types

每个字母符号(rwx)的存在意味着该权限存在,而 - 表示该权限不存在。 在下面的示例中,该文件可由所有者读取和写入,如果用户属于该组,则只能读取,并且可以由其他人读取和执行。 转换为数字表示法,这将是 645(有关如何计算的说明,请参见下图)。

Permission type example

以下是一些示例

Permission type examples

通过完成以下练习来测试您的知识。

Permission type examples
标签
User profile image.
Bryant Jimin Son 是 GitHub 的 Octocat,这并非正式头衔,但他喜欢这样称呼自己。GitHub 是一家以托管世界上大多数开源项目而闻名的公司。 在工作中,他正在探索不同的 git 技术、GitHub Actions、GitHub 安全等。 以前,他是红帽公司的高级顾问,红帽是一家以其 Linux 服务器和开源贡献而闻名的技术公司。

5 条评论

你的练习 1.3 确实很奇怪 -- 一组不允许所有者读取文件的权限,但他的组可以。 你不妨拥有一个 007 的文件...

在第 8 张图片中(在“他们有什么权限?”下)它说“owner”,但它应该是“other”。

我永远不明白他们为什么称它为 UGO,因为要更改文件的所有权,命令是 chown 而不是 chgusr

我一直使用 OGU,例如所有者组用户(注意我写的是用户),它们只是系统上的用户而不是所有者。
如果是因为 Stallman 是这样写的,那么他就搞砸了,现在改起来太糟糕了。

优秀的 linux 教程初学者指南

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.