发布于 2026-01-06 0 阅读
0

Web 开发人员的系统管理员(文件权限) 系统管理员可能是一个棘手的难题

Web 开发人员的系统管理员(文件权限)

系统管理员可不是个容易对付的人物。

系统管理员可不是个容易对付的人物。

这是我们每个人迟早都会遇到的事情,所以我想到,为什么不试着揭开一些基本概念的神秘面纱呢?

基本面

归根结底,服务器上的所有文件和目录都有一些共同点:

  • 它们属于某个用户
  • 他们属于一个团体
  • 他们拥有访问权限

用户对文件/目录可以拥有 3 种类型的权限。

  • 读取 - 该文件可以读取
  • 写入 - 可以将文件写入
  • 执行 - 用户可以执行该文件

根据用户与文件的关系,用户还可以分为 3 个不同的群体。

  • 文件所有者
  • 可以访问该文件的用户
  • 世界其他地区

 这究竟意味着什么

在几乎任何目录中输入内容ls -la都会显示所有这些信息。它看起来会像这样:

-rwxrwx--- 2 admin dev-team 4096 Apr 23 06:22 file-for-my-group
drwx------ 2 admin admin    4096 Apr 23 06:21 my-private-files
drwxrwxr-x 2 admin admin    4096 Apr 23 06:21 public-files
Enter fullscreen mode Exit fullscreen mode

我设置了这个示例来展示文件/目录权限和用户/组。

那一长串字母代表了每个用户对该目录(在本例中)的权限。

这可以细分为 4 组文件权限。例如,我们来看一下public-files目录的权限并进行分析:

drwxrwxr-x

  • d表示该文件是一个目录(普通文件在此位置只会显示一个短横线)。
  • 以下三个字母(rwx)表示文件所有者可以读取、写入和执行该文件。
  • 第二组三个字母(再次出现rwx)表示与该文件属于同一组的所有用户都可以读取、写入和执行该文件。
  • 最后 3 个字符(r-x)表示所有其他用户(不是所有者或组成员)只能读取和执行该文件。

简而言之,它看起来像这样:

文件权限细分图

更改权限

既然我们知道了服务器是如何知道我们可以访问什么和不能访问什么的,那么让我们来看看如何改变它。

还记得之前的例子吗?

-rwxrwx--- 2 admin dev-team 4096 Apr 23 06:22 file-for-my-group
drwx------ 2 admin admin    4096 Apr 23 06:21 my-private-files
drwxrwxr-x 2 admin admin    4096 Apr 23 06:21 public-files
Enter fullscreen mode Exit fullscreen mode

假设我现在希望所有不属于正确组的用户都能访问该file-for-my-group文档。目前,您可以看到组外用户无法读取、写入或执行此文件,但我现在希望允许所有人读取它。

我会使用这个chmod命令来完成这项操作。这个命令需要几个参数,如下所示:

chmod [options] [permission] [file to change]
Enter fullscreen mode Exit fullscreen mode

我的意思是,用permission一个由三个数字组成的序列来表示访问级别以及我们上面讨论过的信息。我们通过为每种不同的权限(读取、写入和执行)分配一个数字来生成这段代码。

  • 阅读 - 4
  • 写 - 2
  • 执行 - 1

如果我想读取、写入和执行该文件,则使用的数字为7
(4 + 2 + 1)。如果我只想允许读取和执行,则数字为5(4 + 1)。同样地,如果我不想允许上述任何操作,则数字为 0 0

了解了这一点,我们现在可以组合出表示这些新权限所需的三个数字。如果我希望所有者拥有完全访问权限(7),组拥有完全访问权限(7),而其他人只有读取访问权限(4),那么数字将是774

在 chmod 命令中使用此方法时,代码如下所示:

chmod 774 file-for-my-group
Enter fullscreen mode Exit fullscreen mode

结论

好了,以上就是Linux系统服务器权限工作原理的简要概述。当然,还有很多更深入的内容可以探讨(例如安全风险、如何使整个目录无法访问、如何更改整个目录的文件权限等等),但本文旨在帮助您快速上手Linux及其文件工作原理。如有任何疑问或评论,请在下方留言!

文章来源:https://dev.to/allmanaj/linux-sys-admin-for-web-devs-file-permissions-lo