+7 (7232) 91-95-12

帮助

访问与权限管理

在本指南中,我们将介绍如何通过 SSH 或使用 FileZilla 设置服务器上文件和目录的访问权限。

访问权限简介

Linux 操作系统中的访问控制系统能够灵活配置用户对文件和目录的权限,从而提高系统的安全性。

只有超级用户 root 拥有绝对的访问控制权(因此以 root 身份操作可能存在风险)。其他用户最初只能访问自己的家目录,无法对系统文件进行不必要的修改。

访问权限包括读取 (r)、写入 (w) 和执行 (x)。

权限可以分配给文件或目录,为用户提供特定的特权:

权限

对于文件

对于目录

r,读取

查看内容

查看内容,即目录中的对象列表(例如使用 cat、ls 命令)

w,写入

修改内容

修改目录内容,即可以添加、删除文件(甚至是属于其他用户的文件)以及重命名文件

x,执行

运行可执行文件

进入目录(例如使用 cd 命令),查看目录中文件的属性

每个文件都定义了三类不同的用户:

  • 所有者:创建文件或当前拥有该文件的用户。默认情况下,所有者拥有文件的全部权限。
  • 所属组:系统中创建并分配给文件的具有特定权限的用户组。一个组可以由一个用户(所有者)或多个用户组成。如果组内包含多个用户,则所有成员都拥有分配给该组的权限。
  • 其他用户:既不是文件所有者也不属于该文件关联组的所有其他用户。

可以为每一类用户针对特定文件设置其独有的权限集。

权限可以用两种方式表示:字母或数字。

数字记录

字母记录

权限

0

---

无权限

1

--x

执行

2

-w-

写入

3

-wx

写入和执行

4

r--

读取

5

r-x

读取和执行

6

rw-

读取和写入

7

rwx

读取、写入和执行

权限记录按顺序排列:首先是所有者,然后是所属组,最后是其他用户。例如,记录 755(或 rwxr-xr-x)表示为所有者提供读取、写入和执行权限(7 / rwx),为组提供读取和执行权限(5 / r-x),为所有其他用户也提供读取和执行权限(5 / r-x)。

以下是几种最常见的权限组合示例:

数字

字母

权限

600

rw-------

所有者可以查看和修改内容,其他用户无权访问该对象

644

rw-r--r--

所有者可以查看和修改内容,其他用户只能查看

700

rwx------

所有者可以查看、修改和执行该对象,其他用户无权访问

755

rwxr-xr-x

所有者拥有一切权限,其他用户可以查看和执行

在为目录授予访问权限时,重要的是要考虑到:为了能够正常操作目录,至少需要读取和执行权限(5 / r-x)。仅有读取权限(4 / r)只允许查看文件名,而无法查看其属性(如大小和所有者)。

查看已设置的权限

要查看当前目录中文件分配的权限,请使用命令 ls -l

在输出结果中,文件在行首标记为 -,目录标记为 d。例如:

username@server:~/new_directory$ ls -l
total 4
drwx------ 2 username customers 4096 Mar 10 14:39 dir1
-rw-r--r-- 1 username customers  128 Mar 10 14:39 test.php

参数解析:

权限       所有者     所属组      文件大小   最后修改时间       文件名
rw-r--r--   username   customers   0          Mar 10 14:39     test.php

如果您只想查看当前目录中特定文件或目录的权限,请指定其名称。例如:

ls -l test.php
ls -l dir5

要查看当前目录及其所有子目录中文件的权限,请使用 -R 标志:

ls -Rl

您也可以指定要查看其文件和子目录权限的具体目录名称:

ls -Rl dir1

设置访问权限

只有文件所有者或系统管理员(如 root 或拥有 sudo 权限的用户)才能更改文件的访问权限。

设置访问权限可以通过以下方式完成:

  • 通过 SSH 连接;
  • 通过 FTP 客户端。

通过 SSH

访问权限可以使用 chmod 命令进行设置。有两种应用方式。

方式 1 – 最简单的方式。每次更改权限时,都会为所有类别的用户指定完整的权限集。权限以数字格式指定。

命令语法:

chmod xxx 文件名

例如,使用以下命令可以为文件 test.php 设置 755 权限,这表示所有者拥有全部权限,而其他所有人拥有读取和执行权限。

chmod 755 test.php

要为 test.php 设置 644 权限,请执行:

chmod 644 test.php

为目录 dir 设置 755 权限:

chmod 755 dir

在某些情况下,可能需要使用 -R 标志,它允许递归设置权限。使用此选项时请务必小心,因为它会更改当前目录下所有子目录中所有文件的访问权限。

为当前目录中的所有对象(包括子目录)设置 755 权限:

chmod -R 755 *

方式 2 允许针对特定类别的用户指定具体的权限更改。这里使用符号表示法。

命令语法:

chmod 类别 动作 权限 文件名

用户类别代号如下:

  • u — 所有者 (源自 user)
  • g — 所属组 (源自 group)
  • o — 其他用户 (源自 other)
  • a — 所有类别 (源自 all)

权限更改动作提供以下选项:

  • + — 添加指定权限
  • - — 移除指定权限
  • = — 将权限替换为指定权限

权限可以表示为 rwx。在组合时(例如读取和执行),不使用连字符,例如写成 rx,而不是 r-x。

例如,使用以下命令,您可以为所属组添加读取和执行权限。原有的其他权限保持不变:

chmod g+rx test.php

要移除 test.php 文件中所属组的写入权限,请使用以下命令:

chmod g-w test.php

要移除其他用户对 test.php 的读取和写入权限,请使用:

chmod o-rw test.php

要为所属组和其他用户授予对 dir1 目录的读取和执行权限,请使用:

chmod go+rx dir1

如果需要为所属组和其他用户递归授予对 new_directory 目录中所有文件和子目录的读取权限,请使用 -R 参数:

chmod -R go+r new_directory

通过 FTP/SFTP (FileZilla)

在 FTP 客户端中设置和更改访问权限是一项简单的任务。

  1. 使用 FileZilla 连接到服务器。
  2. 找到所需的文件或目录。
  3. 右键点击它并选择“权限” (或“属性”)。
  4. 设置所需的权限。在编辑目录权限时,还可以选择将更改应用到所有子目录。
  5. 保存所做的更改。

更改文件所有者或所属组

要更改文件或目录的所有者或所属组,请使用 chown 命令。

命令语法如下:

chown 所有者:所属组 文件名

例如,要将 user1 设置为 test.php 的所有者,请执行:

chown user1 test.php

如果您还需要将所属组更改为 customers,请执行:

chown user1:customers test.php

如果只想更改所属组,请执行:

chown :customers test.php

如有任何疑问,请联系我们