最近搞了一批權限最小化的問題,這裡專門進行一下linux下檔案權限的總結,其實非常簡單。
在介紹linux下檔案的情況,需要先介紹一個概念,使用者、使用者群組。
和win一樣,linux也是需要使用者才能登入的。不同的是在linux中,還存在一個概念:使用者群組。也就是目前使用者所屬的屬組。為什麼要引入這樣一個看似無用的用戶群組呢?這主要是為了在linux下,團隊協作的方便。每個使用者都有屬於自己獨特的權限控制。但是有時候,有一些公有的文件或資料夾,這個你也用,我也用,但是我們並不希望所有人都能用。 (防盜連結:本文首發自 )於是就搞出了一個所屬群組的概念。我們可以僅針對這個所屬群組新增權限。這樣這個所屬群組中的所有使用者都擁有對這個檔案的操作權限。
下邊再來看看檔案權限的控制。
無論是使用者或使用者群組,權限皆只由三個部分組成
讀(read):r
寫(write):w
#執行(execute):x
如檔案f的所屬使用者權限可以設定成:
rwx:代表的是目前使用者擁有讀取、寫入、執行三個權限。
r-x:代表的是目前使用者擁有讀取和執行權限。 (注意:一般執行腳本會設定成這樣的權限)
記住讀取、寫入、執行的順序是固定的,對應的權限如果沒有則使用-(橫線來替代該位)。
而對於電腦使用人員來說一個位置如果存在數據,我們通常使用1來代替,沒有則使用0來代替。
因此:
r-x等於0b101換算後就是5
rwx等於0b111換算後就是7
---等於0b111換算後就是0
而文件的權限,如下圖,由三個面向設定:
目前檔案所屬使用者的權限。
目前使用者所屬使用者群組的權限。
其他使用者的權限。
注意三者的順序也是固定的。
如上圖目前檔案的總權限也就是
r- -rw-r-x,換算成數字就是4(r--)6(rw-)5(r-x)
通常來說,一個檔案擁有777權限,指的就是所屬使用者、所屬使用者群組、其他使用者均擁有rwx權限。
#檔案權限
ls
-l所顯示的內容如下:
-rwxrw-r‐-1 root root 1213 Feb 2 09:39 abc
Feb 2 09:39 abc
#- 10個字元確定不同使用者能對檔案做什麼
#- 第一個字元代表檔案(-)、目錄(d),連結(l)
###- 其餘字元每3個一組(rwx),讀(r)、寫(w)、執行(x)###- 第一組rwx:檔案擁有者的權限是讀取、寫入和執行
- 第二組rw-:與檔案擁有者相同群組的使用者的權限是讀取、寫入但不能執行
- 第三組r--:不與檔案擁有者同組的其他使用者的權限是讀不能寫和執行
也可用數字表示為:r=4,w= 2,x=1 因此rwx=4+2+1=7
- 1 表示連接的檔案數
- root 表示使用者
#- root表示使用者所在的群組
- 1213 表示檔案大小(位元組)
- Feb 2 09:39 表示最後修改日期
- abc 表示檔案名稱
改變權限的指令
chmod 改變檔案或目錄的權限
chmod 755 abc:賦予abc權限rwxr-xr-x
chmod u=rwx, g=rx,o=rx abc:同上u=使用者權限,g=群組權限,o=不同群組其他使用者權限
chmod u-x,g+w abc:給abc去除使用者執行的權限,增加群組寫的權限
chmod a+r abc:給所有使用者新增讀取的權限
以上是linux系統下檔案的權限設定的詳細內容。更多資訊請關注PHP中文網其他相關文章!