一,文件的基本權限:
通常,你使用ls -l 命令,就會看到這樣的行:
讓我們解析一下這些字段代表的意思:
-rw-r–r–. 1 root root 1018 Nov 6 2016 usb_modeswitch.conf
文件類型權限 硬鏈接數 文件所有者 文件所屬組 文件容量 文件最后被修改時間 文件名
既然是要講權限,自然只講文件類型權限了^_^
-rw-r–r–
(1)其中,權限組成為:
– : 代表文件類型
-rw: 文件擁有者的權限
r–:文件所屬群組的權限
r–: 其它人的權限
(2)每個權限組又由rwx組成
其中:
r : 代表可讀的權限,代表數字為4
w: 代表可寫的權限,代表數字為2
x : 代表可執行的權限,代表數字為1
舉例:
補充,上例中–代表文件類型,文件類型分為
d :目錄文件
l :符號鏈接(指向另一個文件,類似于window系統中的快捷方式)
s :套接字文件
b :塊設備文件,二進制文件
c :字符設備文件
p :命名管道文件
– :普通文件,不屬于以上幾種類型的文件
舉例:
文件的權限也可以用chmod修改,以下是實例:
注:文件或目錄的權限不是越大越好,一般按需配給,默認的目錄權限為755,文件權限為644(root用戶是644,普通用戶是664),777是最大的權限值,但權限值越大越意味著不安全,至于為什么,慢慢看吧!^_^
二,文件與目錄的默認權限:
前面已經說了默認的目錄權限為755,文件權限為644,那么怎么知道這些默認權限,又怎么改變默認權限呢?
umask是查看文件與目錄默認權限的命令,例如:
那么什么是默認權限呢?通過例子你就會明白了。
再切換到root用戶:
解釋:我們知道文件的默認權限普通用戶文件是664,root用戶是644,即是這樣。那么它們是怎么來的呢?如下所示:
root:666-022=644
普通用戶:666-002=664
我們知道,root用戶的權限很大,所以給文件644的權限就可以了,而普通用戶沒有那么大的權限,所以給了664。644可以寫為-rw-r–r–,而664可以寫為-rw-rw-r–。當然如果一個普通用戶創建了一個文件,664代表不僅他自己可以讀寫該文件,與用戶同組的人也可以讀寫,這就方便了實際工作中的需求。假如像root用戶一樣設置成了644,同組的人就不能了哦!
注:你一定很疑惑,默認權限為什么會是四位呢,我們先別急,答案在下面。^_^
現在討論一下怎么修改默認值:
用實例來解釋吧:
由上圖可知,將umask改為002,用666-002=664,是正確的。但是,將umask改為003,時,只以為666-003=663是不對的,因為結果是644。這是為什么呢?這是因為相減的并不能簡單的理解為數字,而是應該這樣理解:
666 減 002 等于 664
rw-rw-rw- 減 ——-w- 等于 rw-rw-r–
666 減 003 等于 664
rw-rw-rw- 減 ——-wx 等于 rw-rw-r–
那么到底能不能用666相減呢,還是能的。當umask值是偶數時,正常用666減去umask值;當umask值是奇數時,在用666相減的情況下,在相減的奇數位加一,如:
666 – 003 = 66(3+1)= 664
三,文件隱藏屬性
是的,部件還有隱藏屬性哦!^_^
這便是文件的特殊權限:SUID,SGID,SBIT
下面我將逐一介紹這三者的特征
(1)SUID:
當文件擁有者的x權限上出現s時,例如-rwsr-xr-x,此時就被稱為Set UID,簡稱為SUID的特殊權限。SUID的限制與功能:
SUID權限僅對二進位程序有效;
運行者對于該程序需要具有x的可運行權限;
本權限僅在運行該程序的過程中有效;
運行者將具有該程序擁有者的權限。
實例:
(2)SGID:
當s標志在文件擁有者的x項目為SUID,那s在群組的x時則稱為Set GID
與SUID不同的是,SGID可以針對文件或目錄來配置!如果是對文件來說,SGID有以下功能:
SGID對二進位程序有用;
程序運行者對于該程序來說,需要具備x的權限;
運行者在運行的過程中將會獲得該程序群組的支持。
對目錄的功能:
使用者對于此目錄具有r與x的權限時,該使用者能夠進入此目錄;
使用者在此目錄下的有效群組將會變成該目錄的群組;
用途:若使用者在此目錄下具有w的權限(可以創建文件),則使用者所創建的新文件,該新文件的群組與此目錄的群組相同
實例:
(3)SBIT:
SBIT即Sticky Bit目前只針對目錄有效,對于文件已經沒有效果了,其作用有:
當使用者對于此目錄具有w,x權限,亦即具有寫入的權限時;
當使用者在該目錄下創建文件或目錄時,僅有自己與root才有權力刪除該文件。
(4)用戶權限配置:
前面看到文件權限是四位,我們只講了后三位。那么第一位是什么意思了?其實這就與剛才講的隱藏權限有關。
通常:4代表SUID
2代表SGID
1代表SBIT
例如:
補充 :當我們配置文件隱藏權限時,s與t都是取代x這個權限的,但是當user, group以及others都沒有x這個可運行的權限時,再賦予s或t的權限,就會變成大寫的S與T。
原創文章,作者:xxcj,如若轉載,請注明出處:http://www.www58058.com/83309