你要明白的第一件事是文件權(quán)限可以用來干什么。當你設(shè)置一個分組的權(quán)限時發(fā)生了什么?讓我們將其展開來說,這個概念就真的簡單多了。那到底什么是權(quán)限?什么是分組呢?
你可以設(shè)置的3種權(quán)限:
1.讀 — 允許該分組讀文件(用r表示)
2.寫 — 允許該分組寫文件(用w表示)
3.執(zhí)行 — 允許該分組執(zhí)行(運行)文件(用x表示)
為了更好地解釋這如何應(yīng)用于一個分組,例如,你允許一個分組可以讀寫一個文件,但不能執(zhí)行。或者,你可以允許一個分組讀和執(zhí)行一個文件,但不能寫。甚至你可以允許一個分組有讀、寫、執(zhí)行全部的權(quán)限,也可以刪除全部權(quán)限來去除該組的權(quán)限。
現(xiàn)在,什么是分組呢,有以下4個:
1.user — 文件實際的擁有者
2.group — 用戶所在的用戶組
3.others — 用戶組外的其他用戶
4.all — 所有用戶
大多數(shù)情況,你只會對前3組進行操作,all 這一組只是作為快捷方式(稍后我會解釋)。
到目前為止很簡單,對吧?接下來我們將深入一層。
如果你打開一個終端并運行命令 ls -l,你將會看到逐行列出當前工作目錄下所有的文件和文件夾的列表(如圖)
你會留意到最左邊那列是像是 -rw-rw-r-- 這樣的。
實際上這列表應(yīng)該這樣看:

等效數(shù)值
接下來我們讓它更復(fù)雜一些,每個權(quán)限都可以用一個數(shù)字表示。這些數(shù)字是:
1.讀 — 4
2.寫 — 2
3.執(zhí)行— 1
數(shù)值代替不是一個一個的替換,你不能像這樣:
更改權(quán)限
既然你已經(jīng)理解了文件權(quán)限,那是時候?qū)W習如何更改這些權(quán)限了。就是使用 chmod 命令來實現(xiàn)。第一步你要知道你能否更改文件權(quán)限,你必須是文件的所有者或者有權(quán)限編輯文件(或者通過 su 或 sudo 得到權(quán)限)。正因為這樣,你不能隨意切換目錄和更改文件權(quán)限。
繼續(xù)用我們的例子 (-rw-rw-r--)。假設(shè)這個文件(命名為 script.sh)實際是個shell腳本,需要被執(zhí)行,但是你只想讓自己有權(quán)限執(zhí)行這個腳本。這個時候,你可能會想:“我需要是文件的權(quán)限如 -rwx-rw-r--”。為了設(shè)置 x 權(quán)限位,你可以這樣使用 chmod 命令:
目錄權(quán)限
你也可以對一個目錄執(zhí)行 chmod 命令。當你作為用戶創(chuàng)建一個新的目錄,通常新建目錄具有這樣的權(quán)限:
總結(jié)
現(xiàn)在,你應(yīng)該對基本的 Linux 文件權(quán)限有了深入的理解。對于更高級的東西學(xué)起來會很輕松,像 setgid、setuid 和 ACL 這些。沒有良好的基礎(chǔ),你很快就會混淆不清概念的。
Linux 文件權(quán)限從早期到現(xiàn)在沒有太大變化,而且很可能以后也不會變化。
新聞熱點
疑難解答