最近搞了一批權(quán)限最小化的問題,這里專門進行一下linux下文件權(quán)限的總結(jié),其實非常簡單。
在介紹linux下文件的情況,需要先介紹一個概念,用戶、用戶組。
和win一樣,linux也是需要用戶才能登錄的。不同的是在linux中,還存在一個概念:用戶組。也就是當前用戶所屬的屬組。為什么要引入這樣一個看似無用的用戶組呢?這主要是為了在linux下,團隊協(xié)作的方便。每一個用戶都有屬于自己獨特的權(quán)限控制。但是有時候,有一些公有的文件或文件夾,這個你也用,我也用,但是我們并不希望所有人都能用。(防盜連接:本文首發(fā)自 )于是就搞出了一個所屬組的概念。我們可以僅針對這個所屬組添加權(quán)限。這樣這個所屬組中的所有用戶均擁有對這個文件的操作權(quán)限。
下邊再來看看文件權(quán)限的控制。
無論是用戶還是用戶組,權(quán)限均只由三部分組成
讀(read):r
寫(write):w
執(zhí)行(execute):x
如文件f的所屬用戶權(quán)限可以設置成:
rwx:代表的是當前用戶擁有讀、寫、執(zhí)行三個權(quán)限。
r-x:代表的是當前用戶擁有讀和執(zhí)行權(quán)限。(注意:一般執(zhí)行腳本會設置成這樣的權(quán)限)
記住讀、寫、執(zhí)行的順序是固定的,對應的權(quán)限如果沒有則使用-(橫線來替代該位)。
而對于計算機使用人員來說一個位置如果存在數(shù)據(jù),我們通常使用1來代替,沒有則使用0來代替。
因此:
r-x等于0b101換算后就是5
??????rwx等于0b111換算后就是7
??????—等于0b111換算后就是0
?而文件的權(quán)限,如下圖,由三個方面設定:
當前文件所屬用戶的權(quán)限。
當前用戶所屬用戶組的權(quán)限。
其他用戶的權(quán)限。
注意三者的順序也是固定的。
如上圖當前文件的總權(quán)限也就是
r–rw-r-x,換算成數(shù)字就是4(r–)6(rw-)5(r-x)
通常來說,一個文件擁有777權(quán)限,指的就是所屬用戶、所屬用戶組、其他用戶均擁有rwx權(quán)限。
文件權(quán)限
ls
?-l中顯示的內(nèi)容如下:
-rwxrw-r‐-1?root?root?1213?Feb?2?09:39?abc
? ?
–?10個字符確定不同用戶能對文件干什么
–?第一個字符代表文件(-)、目錄(d),鏈接(l)
–?其余字符每3個一組(rwx),讀(r)、寫(w)、執(zhí)行(x)
–?第一組rwx:文件所有者的權(quán)限是讀、寫和執(zhí)行
–?第二組rw-:與文件所有者同一組的用戶的權(quán)限是讀、寫但不能執(zhí)行
–?第三組r–:不與文件所有者同組的其他用戶的權(quán)限是讀不能寫和執(zhí)行
也可用數(shù)字表示為:r=4,w=2,x=1??因此rwx=4+2+1=7
–?1?表示連接的文件數(shù)
–?root?表示用戶
–?root表示用戶所在的組
–?1213?表示文件大小(字節(jié))
–?Feb?2?09:39?表示最后修改日期
–?abc?表示文件名
?
改變權(quán)限的命令
chmod?改變文件或目錄的權(quán)限
chmod?755?abc:賦予abc權(quán)限r(nóng)wxr-xr-x
chmod?u=rwx,g=rx,o=rx?abc:同上u=用戶權(quán)限,g=組權(quán)限,o=不同組其他用戶權(quán)限
chmod?u-x,g+w?abc:給abc去除用戶執(zhí)行的權(quán)限,增加組寫的權(quán)限
chmod?a+r?abc:給所有用戶添加讀的權(quán)限