本文介紹如何在RedHat Linux 9.0下使用chmod和chown兩個命令對文件設置權根.
指令名稱: chmod
使用權限: 所有使用者
使用方式: chmod [-cfvR] [--help] [--version] mode file...
說明:Linux/Unix的文件調用權限分為三級:文件所有者,組,其他.利用chmod可以控制文件如何被他人所調用.
參數說明:
mode: 權限設定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中u表示該文件的所有者,g表示與該文件的所有者屬于同一個組(group)的成員,o表示其他以外的人,a表示這三者都是.
+表示增加權限,-表示取消權限,=表示唯一設定權限.
r表示可讀取,w表示可寫入,x表示可執行,X表示只有當該文件是個子目錄或者該文件已經被設定過為可執行.
-c: 若該文件權限確實已經更改,才顯示其更改動作;
-f: 若該文件權限無法被更改也不要顯示錯誤訊息;
-v: 顯示權限變更的詳細資料;
-R: 對目前目錄下的所有文件與子目錄進行相同的權限變更(即以遞回的方式逐個變更);
--help: 顯示輔助說明;
--version: 顯示版本;
我們可以用Linux下的圖示來進行說明:
范例:
將文件file1.txt設為所有人都可讀取:
chmod ugo+r file1.txt 或 chmod a+r file1.txt
將文件file1.txt與file2.txt設為該文件所有者與其同組成員可寫入,但其他的人員不能寫入:
chmod ug+w,o-w file1.txt file2.txt
將sharestart.sh設定為只有該文件所有者可以執行:
chmod u+x sharestart.sh
將當前目錄下的所有文件與子目錄都設為任何人可讀取:
chmod -R a+r *
此外chmod也可以用數字來表示權限如chmod 777 filepath
語法為:chmod abc filepath
其中a,b,c各為一個數字,分別表示User,Group,及Other的權限.
r=4,w=2,x=1
若要rwx屬性, 則4+2+1=7;
若要rw-屬性, 則4+2=6;
若要r-x屬性, 則4+1=5.
用一個表來說明可能更清楚:
所有者(User) | 組(Group) | 其它(Other) | |
讀取(r) | 4 | 4 | 4 |
寫入(w) | 2 | 2 | 2 |
執行(x) | 1 | 1 | 1 |
范例:
chmod a=rwx filepath 和 chmod 777 filepath 效果相同
chmod ug=rwx,o=x filepath 和 chmod 771 filepath 效果相同
若用chmod 4755 filepath可使此程序具有root的權限
指令名稱: chown
使用權限: root
使用方式: chmod [-cfhvR] [--help] [--version] user[:group] file...
說明: Linux/Unix是多人多工作業系統,所有的文件都有所有者.利用chown可以將文件的所有者加以改變.一般來說,這個指令只有是由系統管理者(root)所使用,一般使用者沒有權限可以改變別人的文件所有者,也沒有權限可以自己的文件所有者改設為別人.只有系統管理者(root)才有這樣的權限.
參數說明:
user: 新的文件所有者的使用者ID;
group: 新的文件所有者的使用者群體(group);
-c: 若該文件所有者確實已經更改,才顯示其更改動作;
-f: 若該文件所有者無法被更改也不要顯示錯誤訊息;
-h: 只對于連結(link)進行變更,而非該 link 真正指向的文件;
-v: 顯示所有者變更的詳細資料;
-R: 對目前目錄下的所有文件與子目錄進行相同的所有者變更(即以遞回的方式逐個變更);
--help: 顯示輔助說明;
--version: 顯示版本;
范例:
將文件file1.txt的所有者設為users群體的使用者jessie:
chown jessie:users file1.txt
將目前目錄下的所有文件與子目錄的所有者都設為users群體的使用者lamport:
chmod -R lamport:users *
-rw------- (600) -- 只有所有者有讀寫權限.
-rw-r--r-- (644) -- 只有所有者有讀寫權限;而屬組用戶和其他用戶只有讀權限.
-rwx------ (700) -- 只有所有者有讀,寫,執行權限.
-rwxr-xr-x (755) -- 所有者有讀,寫,執行權限;而屬組用戶和其他用戶只有讀,執行權限.
-rwx--x--x (711) -- 所有者有讀,寫,執行權限;而屬組用戶和其他用戶只有執行權限.
-rw-rw-rw- (666) -- 所有用戶都有文件讀,寫權限. 這種做法不可取.
-rwxrwxrwx (777) -- 所有用戶都有讀,寫,執行權限. 更不可取的做法.
以下是對目錄的兩個普通設定:
drwx------ (700) - 只有所有者可在目錄中讀,寫.
drwxr-xr-x (755) - 所有用戶可讀該目錄,但只有所有者才能改變目錄中的內容.