chmod 777是什么意思

您正在尝试修复Web服务器的权限问题,并在Internet上找到了信息,说您需要递归 chmod 777 网络目录。 在此之前,请确保您了解做什么 chmod -R 777 以及为什么永远不要将权限设置为777。

本文介绍了基本的Linux权限模型以及与权限相对应的数字的含义。

了解Linux文件权限#

在Linux中,对文件的访问由操作系统使用文件许可权,属性和所有权控制。 了解Linux文件系统权限模型后,您可以将文件和目录的访问权限限制为仅授权用户和进程访问,从而使系统更安全。

每个文件均由一个特定用户和一个组拥有,并为三种不同类别的用户分配了权限访问权限:

  • 文件所有者。
  • 小组成员。
  • 其他人(其他所有人)。

有三种文件许可权类型适用于每个用户类别,并允许您指定允许哪些用户读取文件,写入文件或执行文件。 相同的权限属性适用于具有不同含义的文件和目录:

  • 读取权限。
    • 该文件是可读的。 例如,设置读取权限后,用户可以在文本编辑器中打开文件。
    • 可以查看目录的内容。 用户可以使用 ls 命令。
  • 写入权限。
    • 可以更改或修改文件。
    • 目录的内容可以更改。 用户可以创建新文件,删除现有文件,移动文件,重命名文件..etc。
  • 执行权限。
    • 该文件可以执行。
    • 可以使用以下命令输入目录 cd 命令。

可以使用 ls 命令。 这是一个例子:

ls -l filename.txt
-rw-r--r-- 12 linuxize users 12.0K Apr  8 20:51 filename.txt
|[-][-][-]-   [------] [---]
| |  |  | |      |       |
| |  |  | |      |       +-----------> 7. Group
| |  |  | |      +-------------------> 6. Owner
| |  |  | +--------------------------> 5. Alternate Access Method
| |  |  +----------------------------> 4. Others Permissions
| |  +-------------------------------> 3. Group Permissions
| +----------------------------------> 2. Owner Permissions
+------------------------------------> 1. File Type

第一个字符显示文件类型。 它可以是常规文件(-), 目录 (d),符号链接(l)或其他任何特殊类型的文件。

接下来的9个字符代表文件许可权,三个三元组,每个三个字符。 第一个三元组显示所有者权限,第二个三元组显示所有者权限,最后一个三元组显示其他所有人权限。

权限编号

文件许可权可以数字或符号格式表示。 在本文中,我们将重点介绍数字格式。

许可号码可以包含三到四个数字,范围从0到7。

当使用3位数字时,第一位代表文件所有者的权限,第二位代表文件组的权限,最后一位代表所有其他用户的权限。

写入,读取和执行许可权具有以下数字值:

  • r (读取)= 4
  • w (写入)= 2
  • x (执行)= 1
  • 没有权限= 0

特定用户类别的许可权数字是该类别的许可权值的总和。

权限编号的每一位可以是4、2、1和0的总和:

  • 0(0 + 0 + 0)–无权限。
  • 1(0 + 0 + 1)–仅执行许可。
  • 2(0 + 2 + 0)–仅写许可。
  • 3(0 + 2 + 1)–写入和执行权限。
  • 4(4 + 0 + 0)–仅读取权限。
  • 5(4 + 0 + 1)–读取并执行权限。
  • 6(4 + 2 + 0)–读写权限。
  • 7(4 + 2 + 1)–读取,写入和执行权限。

例如,如果权限号设置为750,则意味着文件的所有者具有读取,写入和执行权限,文件的组具有读取和执行权限,而其他用户则没有权限:

  • 所有者:rwx = 4 + 2 + 1 = 7
  • 组:rx = 4 + 0 + 1 = 5
  • 其他:rx = 0 + 0 + 0 = 0

使用4位数字时,第一位数字含义如下:

  • setuid = 4
  • setgid = 2
  • 粘性= 1
  • 无变化= 0

接下来的三位数与使用三位数的含义相同。 如果第一个数字为0,则可以省略,并且该模式可以用3个数字表示。 数值模式 0755 是相同的 755

要以数字(八进制)符号查看文件的权限,请使用 stat 命令:

stat -c "%a" filename
644

切勿使用chmod 777#

对文件或目录设置777权限意味着所有用户都可以读取,写入和执行该文件或目录,并且可能会带来巨大的安全风险。

例如,如果您递归地更改目录下所有文件和子目录的权限, /var/www 目录到 777,系统上的任何用户都可以在该目录中创建,删除或修改文件。

如果您在Web服务器上遇到权限问题,请递归地将权限设置为 777,将文件的所有权更改为运行该应用程序的用户,并将文件的权限设置为 644 和目录的权限 755

可以使用 chown 命令和权限 chmod 命令。

假设您的服务器上有一个以“ linuxize”用户身份运行的PHP应用程序。 要设置正确的权限,请运行:

chown -R linuxize: /var/wwwfind /var/www -type d -exec chmod 755 {} ;find /var/www -type f -exec chmod 644 {} ;

只有root用户,文件所有者或具有sudo特权的用户才能更改文件的权限。 使用时要特别小心 chmod,尤其是在递归更改权限时。

结论#

如果要管理Linux系统,那么了解Linux权限的工作方式至关重要。

您永远不要将777(rwxrwxrwx)权限文件和目录权限。 777意味着任何人都可以使用这些文件进行任何操作。

如有任何疑问,请随时发表评论。

chmod终端

Sidebar