<返回更多

全面分析Linux文件属性

2023-08-09    霸都嵌入式
加入收藏

linux文件属性是指Linux系统中对文件或目录的一些特征和权限的描述,它们决定了文件或目录的类型、所有者、所属组、访问权限等信息。Linux文件属性可以通过ls -l或ll命令来查看,也可以通过chgrp、chown、chmod等命令来修改。

Linux文件属性主要包括以下几个方面:

- **文件类型**:Linux系统中有七种文件类型,分别是普通文件、目录、设备、链接、管道、套接字和门。文件类型可以通过ls -l命令的第一个字符来判断,如下表所示:

| 文件类型 | 第一个字符 | 说明 |

| :------: | :--------: | :--: |

| 普通文件 | - | 存储数据的文件,可以是文本或二进制格式 |

| 目录 | d | 存储其他文件或目录的名称和inode号的文件 |

| 设备文件 | b | 块设备文件,以块为单位进行数据传输的设备,如硬盘 |

| 设备文件 | c | 字符设备文件,以字节为单位进行数据传输的设备,如键盘 |

| 链接文件 | l | 指向另一个文件的路径名的文件,可以是硬链接或软链接 |

| 管道文件 | p | 用于进程间通信的文件,数据只能单向流动 |

| 套接字 | s | 用于网络通信或本机进程间通信的文件 |

| 门 | D | 用于进程间通信的一种特殊文件 |

- **所有者和所属组**:Linux系统中每个用户都有一个唯一的用户ID(UID)和一个或多个组ID(GID),每个用户都属于一个主组和若干个附加组。每个文件或目录都有一个所有者和一个所属组,它们决定了该文件或目录的归属和访问权限。所有者和所属组可以通过ls -l命令的第三列和第四列来查看,也可以通过chown和chgrp命令来修改。例如:

```bash

# 查看/root目录下的install.log文件的所有者和所属组

[root@www ~]# ls -l install.log

-rw-r--r-- 1 root root 68495 Jun 25 08:53 install.log

# 将install.log文件的所有者改为bin用户

[root@www ~]# chown bin install.log

[root@www ~]# ls -l install.log

-rw-r--r-- 1 bin root 68495 Jun 25 08:53 install.log

# 将install.log文件的所属组改为users组

[root@www ~]# chgrp users install.log

[root@www ~]# ls -l install.log

-rw-r--r-- 1 bin users 68495 Jun 25 08:53 install.log

# 将install.log文件的所有者和所属组同时改为root用户和root组

[root@www ~]# chown root:root install.log

[root@www ~]# ls -l install.log

-rw-r--r-- 1 root root 68495 Jun 25 08:53 install.log

```

- **访问权限**:Linux系统中每个文件或目录都有三种访问权限,分别是读(r)、写(w)和执行(x)。这三种权限分别对应三种身份,即所有者(u)、所属组(g)和其他用户(o)。这样就形成了九个权限位,可以通过ls -l命令的第二列到第十列来查看,也可以通过chmod命令来修改。例如:

```bash

# 查看/root目录下的install.log文件的访问权限

[root@www ~]# ls -l install.log

-rw-r--r-- 1 root root 68495 Jun 25 08:53 install.log

# 将install.log文件的所有者的权限改为可读可写可执行

[root@www ~]# chmod u=rwx install.log

[root@www ~]# ls -l install.log

-rwxr--r-- 1 root root 68495 Jun 25 08:53 install.log

# 将install.log文件的所属组的权限改为可读可执行

[root@www ~]# chmod g=rx install.log

[root@www ~]# ls -l install.log

-rwxr-xr-- 1 root root 68495 Jun 25 08:53 install.log

# 将install.log文件的其他用户的权限改为无权限

[root@www ~]# chmod o= install.log

[root@www ~]# ls -l install.log

-rwxr-x--- 1 root root 68495 Jun 25 08:53 install.log

# 将install.log文件的所有者、所属组和其他用户的权限同时改为可读可写

[root@www ~]# chmod a=rw install.log

[root@www ~]# ls -l install.log

-rw-rw-rw- 1 root root 68495 Jun 25 08:53 install.log

```

除了使用字母来表示权限外,还可以使用数字来表示。每种权限都有一个对应的数字,如下表所示:

| 权限 | 数字 |

| :--: | :--: |

| r | 4 |

| w | 2 |

| x | 1 |

| - | 0 |

每种身份的三个权限的数字相加就得到了该身份的权限数字,例如:

```bash

# 查看/root目录下的install.log文件的访问权限

[root@www ~]# ls -l install.log

-rw-rw-rw- 1 root root 68495 Jun 25 08:53 install.log

# 计算各个身份的权限数字

所有者:rw- = 4 + 2 + 0 = 6

所属组:rw- = 4 + 2 + 0 = 6

其他用户:rw- = 4 + 2 + 0 = 6

# 将install.log文件的访问权限改为-rwxr-xr--

[root@www ~]# chmod 754 install.log

[root@www ~]# ls -l install.log

-rwxr-xr-- 1 root root 68495 Jun 25 08:53 install.log

# 计算各个身份的权限数字

所有者:rwx = 4 + 2 + 1 =7

所属组:r-x =4 +0+1=5

其他用户:r-- =4+0+0=4

```

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>