当前位置:首页>Linux>Linux 的 chmod 命令

Linux 的 chmod 命令

  • 2026-10-11 08:32:31
Linux 的 chmod 命令

Linux 的 chmod 命令

chmod (change mode) 是 Linux/Unix 系统中用于修改文件或目录权限的重要命令。通过该命令,用户可以控制文件对不同用户的访问权限,确保系统安全和数据保护。

权限基础

Linux 系统中,每个文件或目录都有三类用户权限:

  1. 所有者(owner)
     - 文件的创建者或当前所有者
  2. 所属组(group)
     - 文件所属的用户组
  3. 其他用户(others)
     - 系统上的其他所有用户

每种权限类型包含三种基本权限:

  • 读(r)
     - 读取文件内容或列出目录内容
  • 写(w)
     - 修改文件或目录内容
  • 执行(x)
     - 执行文件或进入目录

两种表示方法

1. 数字表示法(八进制表示法)

用 3 位八进制数表示权限,每位分别对应所有者、所属组和其他用户的权限:

  • 4 = 读(r)
  • 2 = 写(w)
  • 1 = 执行(x)
  • 0 = 无权限

权限组合通过相加得到:

  • 7 (4+2+1) = 读、写、执行(rwx)
  • 6 (4+2) = 读、写(rw-)
  • 5 (4+1) = 读、执行(r-x)
  • 4 = 只读(r--)
  • 3 (2+1) = 写、执行(-wx)
  • 2 = 只写(-w-)
  • 1 = 只执行(--x)

常用权限示例:

  • 755:所有者有全部权限,组和其他用户有读执行权限
  • 644:所有者有读写权限,组和其他用户只有读权限
  • 600:只有所有者有读写权限

2. 符号表示法

使用字母和符号组合表示权限变化:

  • 用户类别:

    • u = 所有者
    • g = 所属组
    • o = 其他用户
    • a = 所有用户(ugo)
  • 操作符:

    • = 移除权限
    • = 添加权限
    • = = 设置精确权限
  • 权限类型:

    • r = 读
    • w = 写
    • x = 执行

示例:

  • chmod u+x file
    :给所有者添加执行权限
  • chmod go-w file
    :移除组和其他用户的写权限
  • chmod a=rw file
    :设置所有用户为读写权限

常用选项

  • -R
     或 --recursive:递归修改目录及其内容权限
  • -v
     或 --verbose:显示详细的权限变更信息
  • -c
     或 --changes:仅显示实际发生变化的权限修改
  • --reference=RFILE
    :参照指定文件的权限设置

特殊权限

除了基本权限外,还有三种特殊权限:

  1. SUID(Set User ID) (s)

    • 以文件所有者的权限执行,而不是执行者的权限
    • 数字表示法中,在所有者权限前加4
    • 示例:chmod 4755 file
  2. SGID(Set Group ID) (s)

    • 以文件所属组的权限执行
    • 数字表示法中,在组权限前加2
    • 示例:chmod 2755 file
  3. Sticky Bit (t)

    • 常用于共享目录,防止用户删除其他用户的文件
    • 数字表示法中,在其他用户权限前加1
    • 示例:chmod 1777 /tmp

实际应用示例

  1. 设置脚本可执行:

    0chmod +x script.sh
  2. 保护私密文件:

    0chmod 600 private.txt
  3. 设置网站目录权限:

    0chmod -R 755 /var/www/html
  4. 创建共享目录:

    0chmod 2770 shared_directory
  5. 查看当前权限:

    0ls -l file.txt

注意事项

  • 修改系统文件权限可能导致安全问题或系统故障
  • 使用 -R 选项时要特别小心,避免意外修改大量文件权限
  • 目录通常需要执行(x)权限才能访问其内容
  • 权限修改只对当前用户有权限的文件有效 Linux 的 chmod 命令

最新文章

随机文章