一、Linux文件和目錄權限管理
1、權限說明:
(1)r:表示具有讀取文件內容的權限;
(2)w:表示具有新增,修改文件內容的權限;
(3)x:表示具有執行文件的權限,同時需要有r權限;
2、目錄權限說明;
(1)r:表示具有瀏覽目錄下有哪些文件的權限,必須同時用x權限才可以;
(2)w:表示具有新增、刪除、移動目錄內容文件的權限,同時需要有x權限;
(3)x:表示具有進入目錄的權限;
3、權限獲取順序
- 先看用戶是不是文件所有者,再看是不是所屬組,最后看是不是其他用戶,如果是其中一個,就有權限;
- 對普通用戶來說,沒有權限是不能訪問資源的;
- 讀寫權限對root用戶不受限制,但x權限受控制;
- 需要注意的是:對root用戶來說,如果root沒有x權限,只要屬組和其他有x權限,root用戶就能執行,而普通用戶不行;
4、文件/目錄的屬主、屬組和其他用戶
有3種不同類型的用戶可對文件和目錄進行訪問:文件所有者(屬主)、同組用戶(屬組)、和其他用戶(其他人),所有者一般指文件的創建者,該類用戶可以將文件的訪問權限賦予系統中的其他用戶
二、文件和目錄的默認權限與umask
(1)root用戶默認umask為022,普通用戶默認為002
(2)umask表示用戶創建文件的默認權限,目錄的最高權限為777,文件最高666;
(3)目錄默認權限=777-umask;文件默認權限=666-unamk,所得結果奇數位加1
(4)目錄新創建后的默認權限是755,文件創建后的默認權限是644;
三、改變文件/目錄的訪問權限——chmod
(1)文字設定法:
格式:chmod [who][+][-][=][mode] filename
操作對象:
• u表示“用戶(user)”及文件或目錄的所有者。
• g表示“同組(group)”及文件或目錄屬主有相同組ID的所有用戶。
• o表示“其他(others)用戶”
• 表示“所有用戶(all)”
操作符號:
+ :添加某個權限。
- :取消某個權限。
= :賦予給定權限並取消其他所有權限。
設置mode所表示的權限:
r
讀取權限,數字代號為“4”; w
寫入權限,數字代號為“2”; x
執行或切換權限,數字代號為“1”;
(2)數字設定法:
格式:chmod [mode] filename
四、更改文件/目錄的所有權——chown
格式:chown [option] [user|group] filename
選項:
-c或——changes:效果類似“-v”參數,但僅回報更改的部分; -f或--quite或——silent:不顯示錯誤信息; -h或--no-dereference:只對符號連接的文件作修改,而不更改其他任何相關文件; -R或——recursive:遞歸處理,將指定目錄下的所有文件及子目錄一並處理; -v或——version:顯示指令執行過程; --dereference:效果和“-h”參數相同;
五、Linux系統文件的特殊權限(SUID,SGID,Sticky)
Set UID
- 當s這個標志出現在文件所有者的x權限上時,例如 “-rwsr-xr-x” ,此時被稱為Set UID,簡稱為SUID的特殊權限。
- SUID權限僅對二進制程序有效;
- 執行者需要對此程序具有x的可執行權限;
- 本權限僅在執行該程序的過程中有效;
-
執行者將具有該程序所有者的權限;
Set GID
- SGID可以針對文件或目錄設置。
- 當s標志出現在用戶組的x權限上時,例如“-rwx–s–x”為Set GID,簡稱為SGID的特殊權限,SGID可以針對文件或目錄設置。
- 對於文件來說:SGID對二進制程序有用;程序執行者對於該程序來說,須具備x的可執行權限;執行者在執行的過程中將會獲得該程序用戶組的支持;
- 當一個目錄設置了SGID的權限后,它將具有以下功能:用戶若對此目錄具有r與x的權限時,該用戶能夠進入此目錄;用戶在此目錄下的有效用戶組將會變成該目錄的用戶組;若用戶在此目錄下具有w的權限,則用戶創建新文件的用戶組與此目錄的用戶組相同;
Sticky Bit
- Sticky Bit,簡稱SBIT。目前只針對目錄有效,針對文件已經無效。
- SBIT的作用:當一個用戶對某目錄是具有用戶組或其他人的身份,並具有w權限(即具有寫入的權限時),這表明該用戶可以對該目錄下任何人新建的目錄或文件進行刪除、移動、重命名等操作。不過,如果該目錄具有SBIT權限時,則僅有文件屬主和root才能刪除、移動、重命名此文件,普通用戶無法刪除該目錄下不屬於自己的文件。