首页 > 百科知识 正文

一篇文章了解Linux文件权限(简述linux系统的文件权限及其管理)

时间:2023-11-19 10:59:57 阅读:283 作者:我在她城

一篇文章了解Linux文件权限(简述linux系统的文件权限及其管理)-第1张

在 Linux 中,文件权限、属性和所有权控制系统进程和用户对文件的访问级别。这确保只有授权用户和进程才能访问特定文件和目录。

Linux 文件权限

基本的 Linux 权限模型通过将每个系统文件与所有者和组相关联并为三个不同类别的用户分配权限访问权限来工作:

  • 文件所有者。
  • 小组成员。
  • 其他人(其他所有人)。

可以使用chown 和chgrp 命令更改文件所有权。

三种文件权限类型适用于每一类用户:

  • 读取权限。
  • 写权限。
  • 执行权限。

这个概念允许您控制哪些用户可以读取文件、写入文件或执行文件。

要查看文件权限,请使用以下ls 命令:

ls -l file_name

-rw-r--r-- 12 linuxize users 12.0K Apr 28 10:10 file_name |[-][-][-]- [------] [---] | | | | | | | | | | | | | -----------> 7. Group | | | | | -------------------> 6. Owner | | | | --------------------------> 5. Alternate Access Method | | | ----------------------------> 4. Others Permissions | | -------------------------------> 3. Group Permissions | ----------------------------------> 2. Owner Permissions ------------------------------------> 1. File Type

第一个字符表示文件类型。它可以是普通文件 ( -)、目录 ( d)、符号链接 ( l) 或其他特殊类型的文件。以下九个字符代表文件权限,三个三元组,每个三个字符。第一个三元组显示所有者权限,第二个组权限,最后一个三元组显示其他人权限。

在上面的例子中,( rw-r--r--) 表示文件所有者有读写权限 ( rw-),组和其他人只有读取权限 ( r--)。

根据文件类型,文件权限具有不同的含义。

三个权限三元组中的每一个都可以由以下字符构成并具有不同的效果,具体取决于它们是设置为文件还是目录:

权限对文件的影响

允许

特点

文件上的含义

-

该文件不可读。您无法查看文件内容。

r

该文件是可读的。

-

该文件不能更改或修改。

w

可以更改或修改该文件。

执行

-

该文件无法执行。

x

该文件可以执行。

s

如果在user三元组中找到,则设置该setuid位。如果在group三元组中找到,则设置该setGID位。这也意味着x设置了标志。当在可执行文件上设置setuid或setgid标志时,将使用文件的所有者和/或组权限执行该文件。

S

与 相同s,但未设置x标志。此标志很少用于文件。

t

如果在others三元组中找到,则设置该sticky位。这也意味着x设置了标志。此标志对文件无用。

T

相同,t但未设置x标志。此标志对文件无用。

权限对目录(文件夹)的影响

目录是特殊类型的文件,可以包含其他文件和目录。

允许

特点

目录上的含义

-

无法显示目录的内容。

r

可以显示目录的内容。(例如,您可以使用ls.列出目录中的文件。)

-

目录的内容不能更改。

w

目录的内容可以更改。(例如,您可以创建新文件、删除文件...等)

执行

-

目录无法更改。

x

可以使用 导航该目录cd。

s

如果在user三元组中找到,则设置该setuid位。如果在group三元组中找到,则设置该setgid位。这也意味着x设置了标志。在setgid目录上设置标志时,在其中创建的新文件将继承目录组 ID (GID),而不是创建该文件的用户的主要组 ID。setuid对目录没有影响。

S

与 相同s,但未设置x标志。这个标志在目录上是无用的。

t

如果在others三元组中找到,则设置该sticky位。这也意味着x设置了标志。当在目录上设置粘滞位时,只有文件的所有者、目录的所有者或管理用户可以删除或重命名目录中的文件。

T

与 相同t,但未设置x标志。这个标志在目录上是无用的。

更改文件权限

可以使用chmod命令更改文件权限。只有 root、文件所有者或具有 sudo 权限的用户才能更改文件的权限。使用chmod时要格外小心,尤其是在递归更改权限时。该命令可以接受一个或多个由空格分隔的文件和/或目录作为参数。

可以使用符号模式、数字模式或参考文件指定权限。

符号(文本)方法

chmod使用符号模式时命令的语法格式如下:

chmod [OPTIONS] [ugoa…][- =]perms…[,…] FILE...

复制

第一组标志 ( [ugoa…]),即用户标志,定义了更改文件权限的用户类别。

  • u - 文件所有者。
  • g - 作为组成员的用户。
  • o - 所有其他用户。
  • a- 所有用户,与ugo.

省略用户标志时,默认为a。

第二组标志 ( [- =]),即操作标志,定义是删除、添加还是设置权限:

  • - - 删除指定的权限。
  • - 添加指定的权限。
  • =- 将当前权限更改为指定权限。如果在=符号后没有赋予权限,则指定用户类的所有权限都将被删除。

权限(perms...)使用的是明确设置零个或一个或多个下列字母:r,w,x,X,s,和t。将权限从一个用户的类复制到另一个用户的类时u,请使用集合、g和 中的单个字母o。

为多个用户类 ( [,…])设置权限时,请使用逗号(不带空格)分隔符号模式。

以下是如何chmod在符号模式下使用该命令的一些示例:

  • 授予组成员执行文件的权限,但不能读取和写入文件:chmod g=x filename复制
  • 删除所有用户的写权限:chmod a-w filename复制
  • 排斥性删除其他用户的执行权限:chmod -R o-x dirname复制
  • 删除除文件所有者之外的所有用户的读、写和执行权限:chmod og-rwx filename复制同样的事情也可以通过使用以下形式来完成:chmod og= filename复制
  • 授予文件所有者读取、写入和执行权限,授予文件组读取权限,不授予所有其他用户权限:chmod u=rwx,g=r,o= filename复制
数值方法

chmod使用符号模式时命令的语法格式如下:

chmod [OPTIONS] NUMBER FILE...

复制

使用数字模式时,您可以同时设置所有三个用户类别(所有者、组和所有其他用户)的权限。

许可编号可以是 3 位或 4 位数字。当使用 3 位数字时,第一位代表文件所有者的权限,第二位代表文件所属的组,最后一位代表所有其他用户的权限。

每个写入、读取和执行权限都具有以下数值:

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

特定用户类别的权限编号由该组的权限值的总和表示。

要在数字模式下找出文件的权限,只需计算所有用户类别的总数。例如,要向文件所有者授予读取、写入和执行权限,向文件组授予读取和执行权限以及仅向所有其他用户授予读取权限,您可以执行以下操作:

  • 所有者:rwx=4 2 1=7
  • 组:rx=4 0 1=5
  • 其他:rx=4 0 0=4

使用上面的方法,我们得到了754代表所需权限的数字。

要设置setuid,setgid以及sticky bit标志,使用4个位数。

当使用 4 位数字时,第一个数字的含义如下:

  • setuid=4
  • setgid=2
  • 粘性=1
  • 无变化 = 0

接下来的三位数字与使用 3 位数字时的含义相同。

如果第一位为0,则可以省略,模式可以用3位数字表示。数字模式0755与 相同755。

计算数字模式,也可以使用另一种方法(二进制方法),但稍微复杂一些。对于大多数用户来说,知道如何使用 4、2 和 1 计算数字模式就足够了。

您可以使用以下stat 命令以数字表示法检查文件的权限:

stat -c "%a" file_name

复制

以下是如何chmod在数字模式下使用该命令的一些示例:

  • 授予文件所有者读写权限,仅对组成员和所有其他用户授予读取权限:chmod 644 dirname复制
  • 给文件所有者读、写和执行权限,给组成员读和执行权限,对所有其他用户没有权限:chmod 750 dirname复制
  • 为给定目录授予读、写和执行权限,以及一个粘性位:chmod 1777 dirname复制
  • 递归地为文件所有者设置读、写和执行权限,而对给定目录上的所有其他用户没有权限:chmod -R 700 dirname复制
结论

在 Linux 中,使用文件权限、属性和所有权来限制对文件的访问。要更改文件的权限,请使用该chmod命令。

如果您有任何问题或反馈,请随时发表评论。

多多关注作者,作者才有动力分享更多实用内容

,

版权声明:该问答观点仅代表作者本人。如有侵犯您版权权利请告知 cpumjj@hotmail.com,我们将尽快删除相关内容。