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
```