在 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…]),即用戶标志,定義了更改文件權限的用戶類别。
省略用戶标志時,默認為a。
第二組标志 ( [- =]),即操作标志,定義是删除、添加還是設置權限:
權限(perms...)使用的是明确設置零個或一個或多個下列字母:r,w,x,X,s,和t。将權限從一個用戶的類複制到另一個用戶的類時u,請使用集合、g和 中的單個字母o。
為多個用戶類 ( [,…])設置權限時,請使用逗号(不帶空格)分隔符号模式。
以下是如何chmod在符号模式下使用該命令的一些示例:
chmod使用符号模式時命令的語法格式如下:
chmod [OPTIONS] NUMBER FILE...
複制
使用數字模式時,您可以同時設置所有三個用戶類别(所有者、組和所有其他用戶)的權限。
許可編号可以是 3 位或 4 位數字。當使用 3 位數字時,第一位代表文件所有者的權限,第二位代表文件所屬的組,最後一位代表所有其他用戶的權限。
每個寫入、讀取和執行權限都具有以下數值:
特定用戶類别的權限編号由該組的權限值的總和表示。
要在數字模式下找出文件的權限,隻需計算所有用戶類别的總數。例如,要向文件所有者授予讀取、寫入和執行權限,向文件組授予讀取和執行權限以及僅向所有其他用戶授予讀取權限,您可以執行以下操作:
使用上面的方法,我們得到了754代表所需權限的數字。
要設置setuid,setgid以及sticky bit标志,使用4個位數。
當使用 4 位數字時,第一個數字的含義如下:
接下來的三位數字與使用 3 位數字時的含義相同。
如果第一位為0,則可以省略,模式可以用3位數字表示。數字模式0755與 相同755。
計算數字模式,也可以使用另一種方法(二進制方法),但稍微複雜一些。對于大多數用戶來說,知道如何使用 4、2 和 1 計算數字模式就足夠了。
您可以使用以下stat 命令以數字表示法檢查文件的權限:
stat -c "%a" file_name
複制
以下是如何chmod在數字模式下使用該命令的一些示例:
在 Linux 中,使用文件權限、屬性和所有權來限制對文件的訪問。要更改文件的權限,請使用該chmod命令。
如果您有任何問題或反饋,請随時發表評論。
多多關注作者,作者才有動力分享更多實用内容
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!