📜  Bash 脚本 – 文件权限(1)

📅  最后修改于: 2023-12-03 14:39:29.274000             🧑  作者: Mango

Bash 脚本 – 文件权限

在 Linux 系统中,文件和目录有许多权限可以设置,以控制对它们的访问。在 Bash 脚本中,我们可以使用 chmod 命令来更改文件的权限。

文件权限的基础

在 Linux 中,每个文件和目录都有一个所有者(owner)和一个所有组(group),以及九个权限位。这些权限位被分为三组,每组三个。

  • 第一组是所有者的权限(owner permissions),用于控制文件的所有者能够对文件进行哪些操作。
  • 第二组是所有者所属组的权限(group permissions),用于控制与文件所有者同一组别的其他用户可以对文件进行哪些操作。
  • 第三组是其他用户的权限(others permissions),用于控制其他用户可以对文件进行哪些操作。

每个权限位可使用数字或符号来表示。数字表示法中,每个数字代表一组权限的不同值:0 没有权限,1 只有执行权限,2 只有写权限,3 有写和执行权限,4 只有读权限,5 有读和执行权限,6 有读和写权限,7 有读、写和执行权限。

符号表示法中,r 代表读权限,w 代表写权限,x 代表执行权限,减号代表无权限,加号代表增加权限,等号则表示指定权限。

使用 chmod 命令更改文件权限

可以通过使用 chmod 命令来更改文件和目录的权限。下面是一些常用的 chmod 命令:

  • chmod +x filename:赋予文件执行权限。
  • chmod -x filename:移除文件执行权限。
  • chmod u+r filename:给文件所有者加上读权限。
  • chmod g+w filename:给文件所属组加上写权限。
  • chmod o-rwx filename:移除其他用户的全部权限。

在 Bash 脚本中,可以使用下面的代码片段来授予文件所有者读、写和执行权限,并移除其他用户的所有权限:

chmod u+rwx filename
chmod o-rwx filename
文件权限及其含义

下面是一些常用的文件权限及其含义:

  • r:读取文件。如果对于目录,可以列出目录下的文件。
  • w:写入或修改文件。如果对于目录,可以创建、删除和移动目录中的文件。
  • x:执行文件。如果对于目录,可以对目录下的文件执行搜索、访问和进入操作。
  • -:代表没有该权限。
  • s:启用 setuid 等特殊权限。有关 setuid,请参阅《UNIX/Linux 操作系统中 setuid 和 setgid 的作用》。
  • t:在目录中启用“粘着位”权限。这意味着只有文件的所有者才能删除目录中的文件。
总结

文件权限是控制对文件和目录的访问的重要方式。通过使用 chmod 命令,我们可以对文件和目录的权限进行更改以实现不同的访问控制。在 Bash 脚本中可以直接使用 chmod 命令,使文件在脚本中满足要求的权限,该命令可以使用数字或符号表示法来设置文件和目录的权限位。