1. 程式人生 > >linux的chmod,chown命令 詳解

linux的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 : 顯示版本 
範例 :將檔案 file1.txt 設為所有人皆可讀取 : 
chmod ugo+r file1.txt 
將檔案 file1.txt 設為所有人皆可讀取 : 
chmod a+r file1.txt 

將檔案 file1.txt 與 file2.txt 設為該檔案擁有者,與其所屬同一個群體者可寫入,但其他以外的
人則不可寫入 : 
chmod ug+w,o-w file1.txt file2.txt 
將 ex1.py 設定為只有該檔案擁有者可以執行 : 
chmod u+x ex1.py 
將目前目錄下的所有檔案與子目錄皆設為任何人可讀取 : 
chmod -R a+r * 
此外chmod也可以用數字來表示許可權如 chmod 777 file 
語法為:chmod abc file 
其中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=7。 
範例: 
chmod a=rwx file 
和 
chmod 777 file 
效果相同 
chmod ug=rwx,o=x file 
和 
chmod 771 file 
效果相同 
若用chmod 4755 filename可使此程式具有root的許可權 
指令名稱 : chown
使用許可權 : root
使用方式 : chown [-cfhvR] [--help] [--version] user[:group] file... 
說明 : Linux/Unix 是多人多工作業系統,所有的檔案皆有擁有者。利用 chown 可以將檔案的擁
有者加以改變。一般來說,這個指令只有是由系統管理者(root)所使用,一般使用者沒有許可權可以
改變別人的檔案擁有者,也沒有許可權可以自己的檔案擁有者改設為別人。只有系統管理者(root)才
有這樣的許可權。 
user : 新的檔案擁有者的使用者 IDgroup : 新的檔案擁有者的使用者群體(group)-c : 若該檔案
擁有者確實已經更改,才顯示其更改動作-f : 若該檔案擁有者無法被更改也不要顯示錯誤訊息-h : 
只對於連結(link)進行變更,而非該 link 真正指向的檔案-v : 顯示擁有者變更的詳細資料-R : 對目
前目錄下的所有檔案與子目錄進行相同的擁有者變更(即以遞迴的方式逐個變更)--help : 顯示輔助
說明--version : 顯示版本 
範例 : 
將檔案 file1.txt 的擁有者設為 users 群體的使用者 jessie : 
chown jessie:users file1.txt 
將目前目錄下的所有檔案與子目錄的擁有者皆設為 users 群體的使用者 lamport : 
chown -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) - 所有使用者可讀該目錄,但只有屬主才能改變目錄中的內容
suid的代表數字是4,比如4755的結果是-rwsr-xr-x 
sgid的代表數字是2,比如6755的結果是-rwsr-sr-x 
sticky位代表數字是1,比如7755的結果是-rwsr-sr-t 
(當然7755這個chmod設定沒多大意義,這裡只是演示一下)

chown 命令
用途
更改與檔案關聯的所有者或組。
語法
chown[  
-f 
] [ 
-h
] [  
-R 
] Owner [ :Group ] { File ... | Directory ... }
chown
-R 
[  
-f 
] [ 
-H

-L

-P
] Owner [ :Group ] { File ... | Directory ... }
描述
chown命令將 File 引數指定的檔案的所有者更改為 Owner 引數指定的使用者。Owner 引數的值可以是可在 /etc/passwd 檔案中找到的使用者標識或登入名。還可以選擇性地指定組。Group 引數的值可以是可在 /etc/group 檔案中找到的組標識或組名。
只有 root 使用者可以更改檔案的所有者。只在您是 root 使用者或擁有該檔案的情況下才可以更改檔案的組。如果擁有檔案但不是 root 使用者,則只可以將組更改為您是其成員的組。
雖然 -H、-L 和 -P 標誌是互斥的,指定不止一個也不認為是錯誤。指定的最後一個標誌確定命令擬稿將演示的操作。
標誌
-f
禁止除用法訊息之外的所有錯誤訊息。
-h
更改遇到的符號連結的所有權,而非符號連結指向的檔案或目錄的所有權。 
當遇到符號連結而您未指定 -h 標誌時,chown 命令更改連結指向的檔案或目錄的所有權,而非連結本身的所有權。
如果指定 -R 標誌,chown 命令遞迴地降序指定的目錄。
-H
如果指定了 -R 選項,並且引用型別目錄的檔案的符號連結在命令列上指定,chown 變數會更改由符號引用的目錄的使用者標識(和組標識,如果已指定)和所有在該目錄下的檔案層次結構中的所有檔案。
-L
如果指定了 -R 選項,並且引用型別目錄的檔案的符號在命令列上指定或在遍歷檔案層次結構期間遇到,chown 命令會更改由符號連結引用的目錄的使用者標識(和組標識,如果已指定)和在該目錄之下的檔案層次結構中的所有檔案。
-P
如果指定了 -R 選項並且符號連結在命令列上指定或者在遍歷檔案層次結構期間遇到,則如果系統支援該操作,則 chown 命令會更改符號連結的所有者標識(和組標識,如果已指定)。chown 命令不會執行至檔案層次結構的任何其它部分的符號連結。
-R
遞迴地降序目錄,更改每個檔案的所有權。當遇到符號連結並且連結指向目錄時,更改該目錄的所有權,但不進一步遍歷目錄。不過 -h、-H、-L or -P 標誌也未指定,則當遇到符號連結並且該連結指向到目錄時,該目錄的組所有權更改但不會進一步遍歷目錄。
安全性
訪問控制:此程式應該作為“可信計算基”中的正常使用者程式安裝。
退出狀態
該命令返回以下出口值:
0
命令執行成功並已執行所有請求的更改。
>0
發生錯誤。
示例
要更改檔案 program.c 的所有者: 
chown jim program.c
program.c的使用者訪問許可權現在應用到 jim。作為所有者,jim 可以使用 
chmod
命令允許或拒絕其他使用者訪問 program.c。
要將目錄 /tmp/src 中所有檔案的所有者和組更改為使用者 john 和組 build: 
chown -R john:build /tmp/src
檔案
/usr/bin/chown
chown命令
/etc/group
包含組標識的檔案
/etc/passwd
包含使用者標識的檔案