Skip to content

chmod permissions file_name 详细讲解

chmod 命令中,permissions 参数用于设置文件或目录的访问权限。权限可以通过符号表示法或数字表示法来指定。

权限概述

在 Unix 和 Linux 系统中,每个文件和目录都有以下三种基本权限:

  • 读取 (r):允许查看文件的内容或列出目录的文件。
  • 写入 (w):允许修改文件的内容或在目录中创建、删除文件。
  • 执行 (x):允许执行文件(如果是程序或脚本)或进入目录。

这些权限可以分配给三个不同的用户类别:

  • 用户 (u):文件或目录的所有者。
  • 组 (g):文件或目录所属的组的成员。
  • 其他 (o):所有其他用户。

权限表示方法

1.符号表示法

在符号表示法中,权限是通过符号来设置的:

  • r:读取权限。
  • w:写入权限。
  • x:执行权限。
  • -:表示没有该权限。

权限设置的格式为 who operator permissions,其中:

  • who:指定要修改的用户类别,可以是 u(用户)、g(组)、o(其他),或者 a(所有用户,即用户、组和其他)。
  • operator:指定如何修改权限,通常是 +(添加权限)、-(删除权限)或 =(设置权限)。
  • permissions:指定要设置的权限,如 rwx

例如:

  • chmod u+x file_name:给文件的所有者添加执行权限。
  • chmod g-w file_name:从文件的组成员中删除写入权限。
  • chmod o=r file_name:将其他用户的权限设置为只读权限。

2.数字表示法

在数字表示法中,权限是用三位八进制数表示的,每一位对应一个用户类别的权限:

  • 4:读取权限(r
  • 2:写入权限(w
  • 1:执行权限(x

通过将这些数字相加,可以得到每个类别的权限值。例如:

  • 7:读取 + 写入 + 执行(rwx
  • 6:读取 + 写入(rw-
  • 5:读取 + 执行(r-x
  • 4:读取(r--
  • 3:写入 + 执行(wx-
  • 2:写入(w--
  • 1:执行(x--
  • 0:没有权限(---

数字表示法的格式为 user_group_other,其中:

  • user:文件所有者的权限
  • group:文件所属组的权限
  • other:其他用户的权限

例如:

  • chmod 755 file_name:设置文件权限为 rwxr-xr-x,即所有者有读取、写入和执行权限,组和其他用户有读取和执行权限。
  • chmod 644 file_name:设置文件权限为 rw-r--r--,即所有者有读取和写入权限,组和其他用户只有读取权限。

例子

  1. 添加执行权限给文件所有者:

    bash
    chmod u+x script.sh

    这将使 script.sh 文件的所有者能够执行它。

  2. 从组成员中删除写入权限:

    bash
    chmod g-w document.txt

    这将移除 document.txt 文件的组成员的写入权限。

  3. 设置文件为所有用户可读、可执行,但不可写:

    bash
    chmod 755 program

    这将使 program 文件的所有者有读取、写入和执行权限,组和其他用户有读取和执行权限。

  4. 设置文件为所有用户不可写:

    bash
    chmod a-w file.txt

    这将移除 file.txt 文件对所有用户的写入权限。