chmod 命令在 Linux 中用于更改文件或目录的访问权限。以下是 chmod 命令的一些常用选项和用法详解:

基本用法

  1. chmod octal file:使用八进制数(octal)设置文件的权限,octal 是一个三位的八进制数,分别代表文件所有者、所属组和其他用户的权限。

  2. chmod symbol file:使用符号模式(symbolic)设置文件的权限,symbol 可以是 u(用户)、g(组)、o(其他)和 a(所有)的组合,以及 +(添加权限)、-(删除权限)和 =(设置精确权限)。

八进制模式(octal)

  • 读(r):4

  • 写(w):2

  • 执行(x):1

权限的八进制值是这些数字的累加。例如:

  • rwx(读、写、执行):7(4+2+1)

  • rw-(读、写):6(4+2)

  • r--(只读):4

符号模式(symbolic)

  • u:文件所有者

  • g:文件所属组

  • o:其他用户

  • a:所有用户(u+g+o)

  • +:添加权限

  • -:删除权限

  • =:设置精确权限

示例

  1. 给所有用户添加读权限

    chmod a+r file
  2. 删除所属组的写权限

    chmod g-w file
  3. 设置文件所有者具有读、写权限,所属组和其他用户只有读权限

    chmod u=rw,g=r,o=r file
  4. 使用八进制数设置权限,使文件所有者具有全部权限,所属组和其他用户只有读权限

    chmod 744 file
  5. 递归地更改目录及其子目录/文件的权限

    chmod -R 755 directory
  6. 使用八进制数设置权限,使文件所有者和所属组具有全部权限,其他用户没有权限

    chmod 770 file
  7. 使用八进制数设置权限,使所有用户具有读和执行权限

    chmod 555 file

需要注意的是

  • 使用 chmod 命令时,需要确保你有足够的权限来更改文件的权限。

  • 在递归更改目录权限时,使用 -R 选项要小心,因为它会更改目录下所有文件和子目录的权限。

  • 符号模式中的 = 操作符会替换指定的权限,而 + 和 - 操作符则分别添加或删除权限。

  • 八进制模式直观地表示权限,而符号模式则更易于理解和使用。