Linux 中的文件属性解析

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 在 Linux 系统中,每个文件和目录有一组属性控制其操作和访问权限。了解这些属性对有效管理文件至关重要。文件属性包括:文件类型(如 `-` 表示普通文件,`d` 表示目录),权限(如 `rwx` 表示所有者权限,`r-x` 表示组和其他用户权限),所有者,组,硬链接数,文件大小和最后修改时间。通过 `chown` 和 `chmod` 命令可更改文件所有者、所属组及权限。此外,还有特殊权限(如 SUID、SGID)和 ACL(访问控制列表)提供更精细的访问控制。

 导言:

在 Linux 系统中,每个文件和目录都有一组属性,用于确定对其进行的操作和访问权限。了解和理解这些文件属性对于有效管理和保护系统中的文件至关重要。本篇博客将详细介绍 Linux 中的文件属性,包括权限、所有者、组等。

以下面一个文件为例:

drwxr-xr-x 2  rootuser rootgroup 4096 Mar 20 15:30 file.txt

每个文件的属性由左边第一部分的 10 个字符来确定:

在给定的示例中,文件 "file.txt" 的属性如下:

  • d:表示这是一个目录。
  • rwxr-xr-x:表示所有者(rootuser)具有读、写和执行权限,而组(rootgroup)和其他用户具有读和执行权限。
  • 2:表示文件的硬链接数量为 2,即有两个文件名指向同一个文件。
  • rootuser:表示文件的所有者是 "rootuser"。
  • rootgroup:表示文件所属的组是 "rootgroup"。
  • 4096:表示文件的大小为 4096 字节。
  • Mar 20 15:30:表示文件的最后修改时间是在 3 月 20 日 15:30。

总结:根据给定的示例,可以得出结论,这是一个目录文件 "file.txt",所有者为 "rootuser",所属组为 "rootgroup",具有读、写和执行权限的所有者,以及读和执行权限的组和其他用户。它有两个硬链接,文件大小为 4096 字节,最后修改时间为 3 月 20 日 15:30。

drwxr-xr-x

d:表示File type(第 0 位确定文件类型)

在 Linux 中,文件列表的第一个字符表示文件的类型和属性。以下是一些常见的字符和它们的含义:

  • -:表示普通文件。这是最常见的文件类型,包含文本文件、二进制文件等。
  • d:表示目录。目录是一个包含其他文件和目录的文件。
  • l:表示符号链接(Symbolic Link)。符号链接是指向另一个文件或目录的特殊文件。
  • c:表示字符设备文件(Character Device File)。字符设备文件是与设备通信的接口,例如终端设备、声卡等。
  • b:表示块设备文件(Block Device File)。块设备文件是与设备通信的接口,例如硬盘、闪存驱动器等。
  • p:表示命名管道(Named Pipe)。命名管道是用于进程间通信的特殊文件。
  • s:表示套接字(Socket)。套接字是用于进程间网络通信的特殊文件。

rwx: 表示属主权限,即user permissions (第 1-3 位确定属主(该文件的所有者)拥有该文件的权限

r-x:表示属组权限,即group permissions,第4-6位确定属组(所有者的同组用户)拥有该文件的权限

r-x:表示其他用户权限,即other (everyone) permissions

 2的含义

2 :表示在这个示例中,文件 file.txt 的硬链接数量为 2。这意味着有两个文件名指向同一个 inode,即这个文件。在 Linux 文件系统中,一个文件的硬链接数量大于 1 表示它有多个链接,即它在文件系统中有多个位置。

在这个示例中,文件 file.txt 的硬链接数量为 2。这意味着有两个文件名指向同一个 inode,即这个文件。在 Linux 文件系统中,一个文件的硬链接数量大于 1 表示它有多个链接,即它在文件系统中有多个位置。

当你创建一个文件的硬链接时,实际上是创建了一个指向相同 inode 的新的目录项。这意味着文件的内容和权限是相同的,只是文件名和位置不同。当你删除一个硬链接时,文件的硬链接数量减少,但实际文件内容不会被删除,直到所有硬链接都被删除。

rootuser      rootgroup

rootuser     : user(owner)name

rootgroup  : group name

4096的含义:

4096: 表示文件的大小为 4096 字节。

Mar 20 15:30

  • Mar 20 15:30:表示文件的最后修改时间是在 3 月 20 日 15:30。

(一)文件权限解释

Linux 中的每个文件和目录都有三组权限:所有者(Owner)、组(Group)和其他人(Others)。这些权限决定了谁可以读取、写入和执行文件。权限分为三个类别:读取(Read)、写入(Write)和执行(Execute)。每个类别都有一个字母表示:

r、w 和 x

权限可以使用数字或字母表示。例如,rwx 表示读取、写入和执行权限。

权限可以使用数字或字母表示。每个权限可以用一个数字表示,如下所示:

  • r(读取权限):用数字 4 表示。
  • w(写入权限):用数字 2 表示。
  • x(执行权限):用数字 1 表示。
  • - 字符表示没有该位置权限

这些数字可以与权限组合使用,以表示文件或目录的权限。将数字权限相加可以得到相应的权限值。例如:

  • rwx 表示读取、写入和执行权限,对应的数字为 4 + 2 + 1 = 7。
  • rw- 表示读取和写入权限,没有执行权限,对应的数字为 4 + 2 = 6。
  • r-x 表示读取和执行权限,没有写入权限,对应的数字为 4 + 1 = 5。

在 Linux 中,使用数字权限表示方式可以更方便地设置文件或目录的权限。例如,使用 chmod 命令可以通过指定数字权限来修改文件的权限。例如,chmod 755 file.txt 将文件 "file.txt" 的权限设置为 -rwxr-xr-x

请注意,数字权限表示方式不仅仅适用于文件和目录的权限,还可以用于其他文件属性,如特殊权限(SUID、SGID、粘滞位)和 ACL(访问控制列表)的权限。

(二)更改文件属性

1. 修改文件所有者和所属组

chown 是 "change owner" 的缩写,用于更改文件或目录的所有者。

chgrp 是 "change group" 的缩写,用于更改文件或目录的所属组。

文件的所有者和所属组决定了谁对文件具有特殊权限。你可以使用 chown 命令来更改文件的所有者,使用 chgrp 命令来更改文件的所属组。以下是使用这些命令的示例:

  • chown user file.txt:将文件的所有者更改为 "user"。
  • chgrp group file.txt:将文件的所属组更改为 "group"。

chgrp 命令用于更改文件或目录的所属组。以下是常见的 chgrp 命令的参数选项:

  • -R:递归地更改指定目录下的所有文件和子目录的所属组。

2. 修改文件权限

  • user:用户
  • group:组
  • others:其他
  • 可以使用 u, g, o 来代表三种身份的权限。

文件权限决定了谁可以读取、写入和执行文件。你可以使用 chmod 命令来修改文件权限。以下是一些常见的 chmod 选项:

  • chmod +x file.txt:添加执行权限。
  • chmod -w file.txt:移除写入权限。
  • chmod 644 file.txt:将文件权限设置为 -rw-r--r--
  • 如果我们需要将文件权限设置为 -rwxr-xr-- ,可以使用 chmod u=rwx,g=rx,o=r 文件名 来设定

chmod 命令用于修改文件或目录的权限。以下是常见的 chmod 命令的参数选项:

  • -R:递归地更改指定目录下的所有文件和子目录的权限。
  • u:表示用户(所有者)权限。
  • g:表示组权限。
  • o:表示其他用户权限。
  • a:表示所有用户权限(相当于 ugo 的组合)。
  • +:添加权限。
  • -:移除权限。
  • =:设置权限。
  • r:读取权限。
  • w:写入权限。
  • x:执行权限。
  • s:设置 SUID 或 SGID 位。
  • t:设置粘滞位。
  • X:仅对目录和文件执行权限。

这些参数选项可以组合使用,以实现对文件或目录权限的精确控制。

请注意,使用 chmod 命令需要适当的权限。通常情况下,只有超级用户(例如 root 用户)才能更改其他用户的文件或目录的权限。

特殊权限和粘滞位

除了基本的权限之外,Linux 还提供了一些特殊权限和标记。其中最常见的是 SUID、SGID 和粘滞位。

  • SUID(Set User ID)权限允许用户在执行文件时以文件所有者的权限运行它。可以使用 chmod u+s file 设置 SUID 权限。
  • SGID(Set Group ID)权限允许用户在执行文件时以文件所属组的权限运行它。可以使用 chmod g+s file 设置 SGID 权限。
  • 粘滞位(Sticky Bit)权限适用于目录,它确保只有目录的所有者可以删除或重命名其中的文件。可以使用 chmod +t directory 设置粘滞位权限。

ACL(访问控制列表)

除了基本的文件权限之外,Linux 还支持 ACL(Access Control List),允许更细粒度的权限控制。ACL 允许你为单个文件或目录设置特定用户或组的权限。使用 getfaclsetfacl 命令可以查看和修改 ACL。

今天就学到这了,先记录一下,方便以后复习!!!

资料参考:Linux 文件基本属性 | 菜鸟教程 (runoob.com)

相关文章
|
9天前
|
Linux
linux中查看某个文件夹下文件的个数和大小
这篇文章介绍了在Linux系统中使用各种命令(如`stat`、`wc`、`du`和`ls`)来查看文件夹下文件的个数和大小的方法。
42 4
linux中查看某个文件夹下文件的个数和大小
|
15天前
云解析分享文件
这座建筑结合了现代设计与和谐的自然景观。大面积的玻璃窗让居住者可以充分享受美景和阳光,同时保证了室内充足的自然光线。是体验宁静生活与自然之美的理想之地。图片展现了其优美的自然环境和现代建筑设计的完美融合。
38 6
云解析分享文件
|
4天前
|
安全 Linux 数据安全/隐私保护
探索Linux操作系统的文件权限管理
【9月更文挑战第29天】在数字世界中,文件权限管理如同保护我们隐私的锁。本文将带你了解如何在Linux系统中设置和管理文件权限,确保你的数据安全。我们将一起学习如何通过命令行工具来控制文件访问,就像学习一门新语言一样有趣。准备好了吗?让我们一起开启这场技术之旅!
|
6天前
|
Linux
深入理解Linux中的cp命令:文件与目录的复制利器
深入理解Linux中的cp命令:文件与目录的复制利器
|
7天前
|
Linux Shell
10-9|linux上统计文件中单词次数
10-9|linux上统计文件中单词次数
|
7天前
|
存储 Linux Shell
常用vim命令和vim基本使用及Linux用户的管理,用户和组相关文件
这篇文章介绍了Vim编辑器的基本使用、常用命令和模式,以及Linux系统中用户和组的管理方法,包括用户和组相关文件如/etc/passwd、/etc/shadow和/etc/group的说明。
常用vim命令和vim基本使用及Linux用户的管理,用户和组相关文件
|
20天前
|
JSON 前端开发 JavaScript
解析JSON文件
解析JSON文件
60 9
|
1月前
|
Ubuntu Linux Shell
Linux系统命令 安装和文件相关命令
本文档详细介绍了Linux系统中的常用命令,包括软件安装卸载命令如`dpkg`和`apt-get`,压缩与解压命令如`gzip`、`bzip2`和`xz`,以及`tar`命令用于打包和解包。此外还介绍了文件分割命令`split`,文件操作命令如`cat`、`head`、`tail`、`more`、`less`等,管道命令和`wc`、`grep`、`find`、`cut`、`sort`、`uniq`、`diff`等实用工具。最后,文档还讲解了文件属性相关的命令如`chmod`、`chown`、`chgrp`以及创建硬链接和软链接的`ln`命令。
|
2月前
|
C# 开发者 UED
WPF开发者必备秘籍:深度解析文件对话框使用技巧,打开与保存文件原来如此简单!
【8月更文挑战第31天】在WPF应用开发中,文件操作是常见需求。本文详细介绍了如何利用`Microsoft.Win32`命名空间下的`OpenFileDialog`和`SaveFileDialog`类来正确实现文件打开与保存功能。通过示例代码展示了如何设置文件过滤器、初始目录等属性,并使用对话框进行文件读写操作。正确使用文件对话框能显著提升用户体验,使应用更友好易用。
52 0
|
2月前
|
测试技术 PHP 开发工具
深入解析 Laravel 中的 Composer Lock 文件
【8月更文挑战第31天】
22 0
下一篇
无影云桌面