chmod命令
chmod命令用來變更文件或目錄的權限。在UNIX系統家族里,文件或目錄權限的控制分別以讀取、寫入、執行3種一般權限來區分,另有3種特殊權限可供運用。用戶可以使用chmod指令去變更文件與目錄的權限,設置方式采用文字或數字代號皆可。符號連接的權限無法變更,如果用戶對符號連接修改權限,其改變會作用在被連接的原始文件。
權限范圍的表示法如下:
u
User,即文件或目錄的擁有者;g
Group,即文件或目錄的所屬群組;o
Other,除了文件或目錄擁有者或所屬群組之外,其他用戶皆屬於這個范圍;a
All,即全部的用戶,包含擁有者,所屬群組以及其他用戶;r
讀取權限,數字代號為“4”;w
寫入權限,數字代號為“2”;x
執行或切換權限,數字代號為“1”;-
不具任何權限,數字代號為“0”;s
特殊功能說明:變更文件或目錄的權限。
語法
chmod(選項)(參數)
選項
-c或——changes:效果類似“-v”參數,但僅回報更改的部分; -f或--quiet或——silent:不顯示錯誤信息; -R或——recursive:遞歸處理,將指令目錄下的所有文件及子目錄一並處理; -v或——verbose:顯示指令執行過程; --reference=<參考文件或目錄>:把指定文件或目錄的所屬群組全部設成和參考文件或目錄的所屬群組相同; <權限范圍>+<權限設置>:開啟權限范圍的文件或目錄的該選項權限設置; <權限范圍>-<權限設置>:關閉權限范圍的文件或目錄的該選項權限設置; <權限范圍>=<權限設置>:指定權限范圍的文件或目錄的該選項權限設置;
參數
權限模式:指定文件的權限模式;
文件:要改變權限的文件。
知識擴展和實例
Linux用 戶分為:擁有者、組群(Group)、其他(other),Linux系統中,預設的情況下,系統中所有的帳號與一般身份使用者,以及root的相關信 息, 都是記錄在/etc/passwd
文件中。每個人的密碼則是記錄在/etc/shadow
文件下。 此外,所有的組群名稱記錄在/etc/group
內!
linux文件的用戶權限的分析圖
例:rwx rw- r--
r=讀取屬性 //值=4
w=寫入屬性 //值=2
x=執行屬性 //值=1
chmod u+x,g+w f01 //為文件f01設置自己可以執行,組員可以寫入的權限 chmod u=rwx,g=rw,o=r f01 chmod 764 f01 chmod a+x f01 //對文件f01的u,g,o都設置可執行屬性
chown命令
chown命令改變某個文件或目錄的所有者和所屬的組,該命令可以向某個用戶授權,使該用戶變成指定文件的所有者或者改變文件所屬的組。用戶可以是用戶或者是用戶D,用戶組可以是組名或組id。文件名可以使由空格分開的文件列表,在文件名中可以包含通配符。
只有文件主和超級用戶才可以便用該命令。
語法
chown(選項)(參數)
選項
-c或——changes:效果類似“-v”參數,但僅回報更改的部分;
-f或--quite或——silent:不顯示錯誤信息;
-h或--no-dereference:只對符號連接的文件作修改,而不更改其他任何相關文件;
-R或——recursive:遞歸處理,將指定目錄下的所有文件及子目錄一並處理;
-v或——version:顯示指令執行過程;
--dereference:效果和“-h”參數相同;
--help:在線幫助;
--reference=<參考文件或目錄>:把指定文件或目錄的擁有者與所屬群組全部設成和參考文件或目錄的擁有者與所屬群組相同;
--version:顯示版本信息。
參數
用戶:組:指定所有者和所屬工作組。當省略“:組”,僅改變文件所有者;
文件:指定要改變所有者和工作組的文件列表。支持多個文件和目標,支持shell通配符。
實例
將目錄/usr/meng
及其下面的所有文件、子目錄的文件主改成 liu:
chown -R liu /usr/meng
chgrp命令
chgrp命令用來改變文件或目錄所屬的用戶組。該命令用來改變指定文件所屬的用戶組。其中,組名可以是用戶組的id,也可以是用戶組的組名。文件名可以 是由空格分開的要改變屬組的文件列表,也可以是由通配符描述的文件集合。如果用戶不是該文件的文件主或超級用戶(root),則不能改變該文件的組。
在UNIX系統家族里,文件或目錄權限的掌控以擁有者及所屬群組來管理。您可以使用chgrp指令去變更文件與目錄的所屬群組,設置方式采用群組名稱或群組識別碼皆可。
語法
chgrp(選項)(參數)
選項
-c或——changes:效果類似“-v”參數,但僅回報更改的部分; -f或--quiet或——silent:不顯示錯誤信息; -h或--no-dereference:只對符號連接的文件作修改,而不是該其他任何相關文件; -R或——recursive:遞歸處理,將指令目錄下的所有文件及子目錄一並處理; -v或——verbose:顯示指令執行過程; --reference=<參考文件或目錄>:把指定文件或目錄的所屬群組全部設成和參考文件或目錄的所屬群組相同;
參數
- 組:指定新工作名稱;
- 文件:指定要改變所屬組的文件列表。多個文件或者目錄之間使用空格隔開。
實例
將/usr/meng
及其子目錄下的所有文件的用戶組改為mengxin
chgrp -R mengxin /usr/meng
umask命令
umask命令用來設置限制新建文件權限的掩碼。當新文件被創建時,其最初的權限由文件創建掩碼決定。用戶每次注冊進入系統時,umask命令都被執行, 並自動設置掩碼mode來限制新文件的權限。用戶可以通過再次執行umask命令來改變默認值,新的權限將會把舊的覆蓋掉。
語法
umask(選項)(參數)
選項
-p:輸出的權限掩碼可直接作為指令來執行; -S:以符號方式輸出權限掩碼。
參數
權限掩碼:指定權限掩碼。
實例
利用umask命令可以指定哪些權限將在新文件的默認權限中被刪除。例如,可以使用下面的命令創建掩碼,使得組用戶的寫權限,其他用戶的讀、寫和執行權限都被取消:
umask u=, g=w, o=rwx
執行該命令以后,對於下面創建的新文件,其文件主的權限未做任何改變,而組用戶沒有寫權限,其他用戶的所有權限都被取消。
應注意:操作符“=”在umask命令和chmod命令中的作用恰恰相反。在chmod命令中,利用它來設置指定的權限,而其余權限則被刪除;但是在umask命令中,它將在原有權限的基礎上刪除指定的權限。
不能直接利用umask命令創建一個可執行的文件,用戶只能在其后利用chmod命令使它具有執行權限。假設執行了命令umask u=, g=w, o=rwx
,雖然在命令行中,沒有刪去文件主和組用戶的執行權限,但默認的文件權限還是640(即 rw-r-----),而不是750(rwxr-x---)。但是,如果創建的是目錄或者通過編譯程序創建的一個可執行文件,將不受此限制。在這種情況 下,會設置文件的執行權限。
也可以使用八進制數值來設置mode。由於在umask中所指定的權限是要從文件中刪除的,所以,如果該文件原來的初始化權限是777,那么執行命令umask 022以后,該文件的權限將變為755:如果該文件原來的初始化權限是666,那么該文件的權限將變為644。
可以使用下面的命令檢查新創建文件的默認權限:
umask -s
選項-s表示以字符形式顯示當前的掩碼。如果直接輸入umask命令,不帶任何參數,那么將以八進制形式顯示當前的掩碼。系統默認的掩碼是0022。