前言

在 Linux 系统中,文件权限控制是非常重要的。每个文件都有其所有者和所属组,并且拥有一套权限来控制谁能对文件进行读取、写入和执行等操作。本文将详细介绍文件权限的组合规则,如何使用常用命令 ls -l 查看文件权限,使用 chownchgrp 更改文件所有者和所属组,以及 chmod 命令来设置文件访问权限。
在这里插入图片描述


一、文件权限概述

Linux 系统中的每个文件都有三种权限设置,分别针对文件的 所有者(属主)、所属组(属组) 以及 其他用户。每种权限包括三种类型:

  • r (read):读取权限,允许读取文件内容。
  • w (write):写入权限,允许修改文件内容。
  • x (execute):执行权限,允许执行文件(如果文件是可执行文件)。

在这里插入图片描述

文件权限可以通过 ls -l 命令来查看。

1. 权限表示格式

使用 ls -l 命令可以列出文件的详细信息,包括文件类型和权限。例如:
在这里插入图片描述
权限的格式可以分为 10 位,其中:

  • 第一位表示文件类型:
    -:普通文件
    d:目录
    l:符号链接
    b:块设备
    c:字符设备
  • 接下来的 9 位表示文件权限,三位一组,分别表示所有者、所属组和其他用户的权限。每组三个字符依次表示 r、w、x 权限。例如,rwxr-xr-- 表示:
    所有者(前三位):具有读取、写入和执行权限(rwx)
    所属组(中间三位):具有读取和执行权限(r-x)
    其他用户(后三位):只有读取权限(r–)

在这里插入图片描述

2. 权限组合值

文件权限还可以用八进制数表示,其中:

  • r 对应的值是 4
  • w 对应的值是 2
  • x 对应的值是 1

例如:

  • rwx 权限对应的值是 4+2+1 = 7
  • rw- 权限对应的值是 4+2 = 6
  • r-x 权限对应的值是 4+1 = 5

因此,权限 rwxr-xr-- 可以用八进制表示为 0754

二、查看文件权限

可以使用 ls -l 命令查看文件的详细权限信息。
在这里插入图片描述

  • 第一列表示文件的类型和权限(-rwxr-xr--
  • 第二列表示硬链接数
  • 第三列表示文件所有者(user
  • 第四列表示文件所属组(group
  • 第五列表示文件大小(1024 字节)
  • 第六列表示文件的最后修改时间(Sep 19 10:00
  • 第七列表示文件名(example.txt
    在这里插入图片描述

三、修改文件所有者与所属组

1. 使用 chown 修改文件所有者

chown 命令用于更改文件或目录的所有者,语法如下:

$ sudo chown 新所有者 文件名

例如,将 example.txt 的所有者更改为 user2

$ sudo chown user2 example.txt

2. 使用 chgrp 修改文件所属组

chgrp 命令用于更改文件的所属组,语法如下:

$ sudo chgrp 新组 文件名

例如,将 example.txt 的所属组更改为 group2

$ sudo chgrp group2 example.txt

3. 添加所有者

通过 sudo adduser 命令可以将添加用户:
在这里插入图片描述

四、修改文件权限

使用 chmod 命令可以修改文件或目录的权限,支持两种方式:符号方式和八进制方式。

1. 符号方式

符号方式中,权限由 u(所有者)、g(所属组)、o(其他用户)和 a(所有用户)进行指定,并通过 +-= 符号修改权限。

语法格式如下:

$ chmod [ugoa][+-=][rwx] 文件名

例如:

  • 给所有者添加执行权限:chmod u+x example.txt
  • 给所属组和其他用户删除写权限:chmod go-w example.txt
  • 设置文件权限为只读:chmod a=r example.txt

2. 八进制方式

八进制方式可以一次性为所有用户设置权限。例如:

$ chmod 754 example.txt

表示:

  • 所有者有读、写、执行权限(7)
  • 所属组有读和执行权限(5)
  • 其他用户只有读权限(4)

3. 实际修改

新创建的shell脚本文件通常是没有执行权限的,也就是.sh后缀的文件只具备读r写w的权限,使用./+脚本文件名即可执行

在这里插入图片描述
使用如下命令给所有者加上执行脚本的权限即可成功运行

chmod u+x demo.sh

在这里插入图片描述


总结

Linux 文件权限系统为文件提供了精细的访问控制机制。通过 ls -l 可以查看文件的权限和属性,chown 可以更改文件所有者,chgrp 可以更改文件所属组,chmod 则可以灵活地修改文件的访问权限。掌握这些基本命令,可以更好地管理 Linux 系统中的文件安全。

通过这篇文章的介绍,您应该对 Linux 文件权限有了更深入的了解,能够灵活运用各种权限管理命令。如果你有任何疑问或建议,欢迎在评论区留言讨论🌹

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐