Linux 命令 | chmod

Linux 命令 | chmod
最新回答
魔怪小姐

2026-10-25 11:07:33

chmod 是 Linux 系统中用于修改文件或目录访问权限的核心命令,通过符号模式或数字模式精确控制用户权限。 以下是详细说明:

一、基本语法chmod [选项] 模式 文件名
  • 选项:

    -R:递归修改目录及其所有子项权限(对目录操作时常用)。

    -v:显示详细修改信息(Verbose)。

    -c:仅显示被修改的文件(Change)。

二、模式类型1. 符号模式(推荐初学者)

格式:[用户类别][操作符][权限]

  • 用户类别:

    u:文件拥有者(User)。

    g:同组用户(Group)。

    o:其他用户(Others)。

    a:所有用户(All,等价于 u+g+o)。

  • 操作符:

    +:添加权限。

    -:删除权限。

    =:直接设置权限(覆盖原有权限)。

  • 权限:

    r:读权限(Read)。

    w:写权限(Write)。

    x:执行权限(Execute)。

示例:

chmod u+x file.txt # 为拥有者添加执行权限chmod go-rw file.txt # 删除组和其他用户的读写权限chmod a=r file.txt # 所有用户仅保留读权限2. 数字模式(高效但需理解权限值)

权限用三位八进制数表示,从左到右依次为 拥有者、组、其他用户,每位数字是权限值的总和:

  • r = 4
  • w = 2
  • x = 1

常见组合:

  • 7:rwx(读+写+执行)
  • 6:rw-(读+写)
  • 5: r-x(读+执行)
  • 4: r--(仅读)

示例:

chmod 755 file.txt # 拥有者rwx,组和其他r-xchmod 644 file.txt # 拥有者rw-,组和其他r--三、递归修改目录权限

使用 -R 选项可批量修改目录及其子项权限,常用于配置网站目录或共享文件夹:

chmod -R 750 /var/www/ # 递归设置网站目录权限四、注意事项
  1. 权限继承:递归修改时,子文件和子目录会继承指定权限,但需注意:

    目录需 x 权限才能进入(即使有 r 权限)。

    文件通常不需要 x 权限,除非是可执行脚本或程序。

  2. 安全风险:避免过度开放权限(如 777),可能导致数据泄露或恶意篡改。
  3. 符号与数字模式混合使用:可通过逗号分隔多组操作:chmod u=rw,g=r,o= file.txt # 拥有者rw,组r,其他无权限
五、实际应用场景
  1. 允许用户执行脚本:chmod u+x script.sh
  2. 共享目录权限设置:chmod -R 775 /shared/ # 拥有者和组可读写执行,其他用户可读执行
  3. 保护敏感文件:chmod 600 /etc/passwd # 仅拥有者可读写
六、权限查看

使用 ls -l 查看文件权限:

ls -l file.txt# 输出示例:-rwxr-xr-- 1 user group 0 Jan 1 10:00 file.txt# 权限部分:-rwxr-xr--(拥有者rwx,组r-x,其他r--)

通过灵活组合符号模式或数字模式,chmod 能精准控制文件访问权限,是 Linux 系统安全管理的关键工具。