昨天,我說明了有關WINDOWS的檔案權限,今天就針對LINUX來稍做介紹吧!
其實我一開始就有說過,WINDOWS與LINUX的檔案權限原本就有點類似,除了在安全性(預設值)的差別之外,不過...因為WINDOWS對於圖形介面還是比文字介面人性化一點(就像玩LINUX的人用它的圖形化設定,有時也會霧煞煞一樣)。
所以在LINUX上的檔案權限設定,筆者就會以文字模式來做介紹,如有遺漏之處,還請大家留言或指正(最近一直被網友們抓到發現自己的疏忽...ORZ),不過這一篇文章會比較類似我去上LPI課時的筆記,所以會比較「生硬」一些!
檔案權限的觀念:
1.不是繼承的模式(跟WINDOWS系統的預設值不同)。
2.每個權限都是獨立的(可寫入不代表可讀取)。
3.管理員(SUPER USER = root)有絕對的權限。
LINUX的檔案格式:共有十個欄位(特殊權限外,其餘為三個一組)
3
↓
例:-rw-r--r--(為了標示方便,故以全型表示)
↑ ↑ ↑
1 2 4
欄位說明:
1.檔案類型:用來標示該檔案或資料夾種類。
(-:一般檔案、d:資料夾、l:連結資料)
2.擁有者的權限:用來設定此檔案或資料夾擁有者的權限。
3.擁有群組的權限:用來設定此檔案或資料夾擁有群組的權限。
4.其它人的權限:用來設定此檔案或資料夾給其它人的權限。
其中,對於檔案權限的設定方式以二進位(1、2、4)或文字(r、w、x)代表
說明:
1.二進位:1=執行、2=寫入、4=讀取
2.文字法:x=執行、w=寫入、r=讀取
rwx = 4+2+1=7
rw- = 4+2+0=6
r-x = 4+0+1=5
r-- = 4+0+0=4
-wx = 0+2+1=3
-w- = 0+2+0=2
--r = 0+0+1=1
--- = 0+0+0=0
5
↓
實例: -rwxr-x--x
↑ ↑ ↑
二進位:0 7 1
說明: 特殊權:無
使用者:有讀取、寫入和執行的權限
使用群組:有讀取和執行的權限
其它人:有執行的權限
對於檔案、資料夾都具備權限的觀念,可是意義上卻有很大的不同之處:
檔案(FILE) 資料夾(DIR.)
-------------------------
r │ 可讀取 │ 只能讀檔名 │
----│---------│---------│
w │ 可寫入 │ 能搬移目錄 │
----│---------│---------│
x │ 可執行 │ 能進入目錄 │
----│---------│---------│
變更權限的指令:chmod
用法:chmod 777 test(改變test檔案成全部人都能讀取、寫入和執行)
chmod g+w test(針對test檔案的群組,加入寫入的權限)
chmod ugo+w test(test檔案的擁有者、群組和其它人都加入寫入權限)
變更擁有者/群組的指令:chown/chgrp
用法:chown test file(改變file的擁有者為test)
chgrp test file(改變file的群組為test)
chown test.test file(改變file的擁有者和群組皆為test)
說明:在LINUX中檔案預設有擁有者、群組兩種特性,兩者間可用「.」區隔。
特殊權限說明:實例可參考(#ls -al /usr/bin/passwd)
setgid
↓
例:-rwsr-xr-x 1 root root ... /usr/bin/passwd
↑ ↑
setuid sticky
特殊權限:(加在原有權限上)
111 111 111 111
特殊權限 擁有者 群組 其它人
u g o
小寫 s s t(原有x權限)
大寫 S S T(原無x權限)
例:chmod 4766 file(file的u、g和o權限中都加上特殊權限)
=chmod u+s file(原有x權限)
chmod g+S file(原無x權限)
chmod o+T file(原無x權限)
特殊權限說明:
檔案(FILE) 資料夾(DIR.)
------------------------------------
setuid │暫時切換該執行檔擁有者│ 系統會忽略 │
-------│-----------│----------------│
setgid │暫時切換該執行檔的群組│建立檔案的擁有群組會與該目錄相同│
-------│-----------│----------------│
sticky │與上述相同(系統忽略)│其它人不能夠刪除不屬於自己的檔案│
-------│-----------│----------------│
遮罩說明:系統內建的umask=022(例:test建立一個檔案與資料夾)
系統中預設權限:檔案=666、資料夾=777
加上系統的遮罩:umask=022
預設建立值:檔案=644、資料夾=755(不是666-022=644或777-022=755!)
其實加上遮罩的方式,是運算後的結果:
defalut│ 0 │ 0 │ 1 │ 1 │
--------│---│---│---│---│
umask │ 0 │ 1 │ 0 │ 1 │
--------│---│---│---│---│
end │ 0 │ 0 │ 1 │ 0 │
例:檔案=666、umask=022
default 110(6) 110(6) 110(6)
umask 000(0) 010(2) 010(2)
-----------------------------
End 110 100 100
數值 4+2=6 4+0=4 4+0=4
不知道經過筆者冗長的解說之後,對於LINUX的檔案權限有沒有更瞭解一點(老實說!除非真的有需要的人才會來看吧!?),我知道對一般人來說這些真的太過生澀,但是...這就是LINUX的檔案權限
我在內文中,也有一些外部的連結,是原文的相關說明,有興趣的人也可參照一番!說不定我又有那兒寫錯了!還請大家不吝指教(最近寫啥都有點怕怕的...),謝謝!
不要怕啦!用力的寫,寫出高人來指點不是很好嗎?加油哦!
回覆刪除哈!沒錯呀!
回覆刪除有人幫忙抓錯是件好事,不過每次打開自己的gmail時都會心驚膽跳!
怕是不是會收到有人回應說我那兒寫錯了!
哈!可是這也是我最大的用意呀!畢竟我一人之力,只能串聯網路上眾多朋友之力,才能夠有所成長!
IT業不往前進就是等於荒蕪...唉~殘酷的生態吧!
你要加油哦!等到我Linux練到一定程度之後,就不是只有加油打氣囉!(也許是加瀉油打毒氣了~快酸啊~)
回覆刪除加瀉油打毒氣了!?
回覆刪除別對我這麼狠吧!?我也只是小小的胡亂寫而已呀!
不過,當然是希望你也能夠來多加個什麼東西!畢竟這種路上原本就不該寂莫的呀!
反正多個人來亂也好啦!哈哈~~等你呀!