基本作用

chomd主要作用是修改文件权限或者目录权限

权限详解

在Linux中,权限被分为三组,每组包含三种权限:

  1. 所有者 (Owner / User - u): 文件的创建者或被指定为所有者的用户。
  2. 组 (Group - g): 与文件关联的用户组中的所有用户。
  3. 其他用户 (Others / World - o): 除了所有者和组成员之外的所有其他用户。 每组权限组都包含以下三种基本权限:
  • 读取 (Read - r):
    • 对于文件: 允许查看文件内容。
    • 对于目录: 允许列出目录中的文件(但必须同时有执行权限才能进入目录)。
  • 写入 (Write - w):
    • 对于文件: 允许修改、保存或删除文件。
    • 对于目录: 允许在目录中创建、删除或重命名文件(但必须同时有执行权限才能进入目录)。
  • 执行 (Execute - x):
    • 对于文件: 允许将文件作为程序或脚本运行。
    • 对于目录: 允许进入(cd)目录并访问其内容。 我们可以使用ls -l来查看文件权限

两种用法

1.符号模式

符号模式可以使用字符来增量的修改权限 语法:

chmod [who][operator][permissions] file/directory
  • who (作用对象)
    • u (user): 所有者
    • g (group): 组
    • o (others): 其他用户
    • a (all): 所有用户 (u, g, o 的总和)
    • 如果省略 who,则默认作用于 a (all),但受 umask 影响。
  • operator (操作符)
    • +: 添加指定的权限。
    • -: 移除指定的权限。
    • =: 设置指定的权限,并移除未指定的其他权限。
  • permissions (权限)
    • r: 读取 (Read)
    • w: 写入 (Write)
    • x: 执行 (Execute) 例子:
chmod u+x script.sh 
#为文件所有者增加执行权限
chmod a=rwx script2.sh 
#为所以用户添加读写执行的权限
chmod u+w directory/
#为目录所有者添加写权限

数字模式

数字模式使用八进制数字表示每组权限 每个权限都有自己的对应值

  • r(读) = 4
  • w(写) = 2
  • x(执行) = 1
  • -(无权限) = 0 通过将每组权限的数字值相加,可以得到一个三位八进制数字。这三位数字分别代表所有者其他用户的权限。

权限组合的数字值:

权限组合数字值
---0
--x1
-w-2
-wx3
r--4
r-x5
rw-6
rwx7

语法:

chmod [xxx] file/director

其中xxx是一个三位8进制数字

  • 第一位数字:所有者的权限 (Owner)
  • 第二位数字:组的权限 (Group)
  • 第三位数字:其他用户的权限 (Others) 例:
chmod 644 file
  • 6 (rw-) 给所有者:读、写
  • 4 (r—) 给组:读
  • 4 (r—) 给其他用户:读
  • 这是普通文件常见的权限设置,所有者可读写,其他人只读。