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

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: 顯示版本

示例1:

將檔案 ymq.txt 設為所有人皆可讀取 :

chmod ugo+r ymq.txt   

將檔案 ymq.txt 設為所有人皆可讀取 :

chmod a+r ymq.txt   

將檔案 ymq1.txt 與 ymq2.txt 設為該檔案擁有者,與其所屬同一個群體者可寫入,但其他以外的人則不可寫入 :

chmod ug+w,o-w ymq1.txt ymq2.txt  

將 ymq.py 設定為只有該檔案擁有者可以執行 :

chmod u+x ymq.py   

將目前目錄下的所有檔案與子目錄皆設為任何人可讀取 :

chmod -R a+r *   

此外chmod也可以用數字來表示許可權如 chmod 777 file

語法為:chmod abc file 其中a,b,c各為一個數字,分別表示UserGroup、及Other的許可權

r=4,w=2,x=1

若要rwx屬性則4+2+1=7 若要rw-屬性則4+2=6 若要r-x屬性則4+1=5

示例2:

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: 新的檔案擁有者的使用者 ID group: 新的檔案擁有者的使用者群體(group) -c-change:作用與-v相似,但只傳回修改的部分 -f–quiet或–silent:不顯示錯誤資訊 -h–no-dereference:只對符號連結的檔案做修改,而不更改其他任何相關檔案 -R-recursive:遞迴處理,將指定目錄下的所有檔案及子目錄一併處理 -v–verbose:顯示指令執行過程 –dereference:作用和-h剛好相反 –help:顯示線上說明 –reference=<參考檔案或目錄>:把指定檔案或目錄的所有者與所屬組,統統設定成和參考檔案或目錄的所有者與所屬組相同 –version:顯示版本資訊

示例1:

將檔案 file1.txt 的擁有者設為 users 群體的使用者 jessie :

chown jessie:users file1.txt   

將目前目錄下的所有檔案與子目錄的擁有者設為

chown -R ymq(所屬使用者) : ymqgroup(所屬使用者組名) * (要更改的檔案路徑)

chown [-R] [使用者名稱稱] [檔案或目錄] chown [-R] [使用者名稱稱:組名稱] [檔案或目錄]

chown -R ymq:ymqgroup *   

rwx分別表示UserGroup、及Other的許可權。

-rw------- (600) -- 只有屬主有讀寫許可權 -rw-r–r– (644) – 只有屬主有讀寫許可權;而屬組使用者和其他使用者只有讀許可權 -rwx------ (700) -- 只有屬主有讀、寫、執行許可權 -rwxr-xr-x (755) – 屬主有讀、寫、執行許可權;而屬組使用者和其他使用者只有讀、執行許可權 -rwx--x--x (711) -- 屬主有讀、寫、執行許可權;而屬組使用者和其他使用者只有執行許可權 -rw-rw-rw- (666) – 所有使用者都有檔案讀、寫許可權。這種做法不可取 -rwxrwxrwx (777`) – 所有使用者都有讀、寫、執行許可權。更不可取的做法

示例2:

test3.txt檔案的屬主改為test使用者。

# ls -l test3.txt  
-rw-r–r– 1 test root 0 2017-08-20 9:59 test3.txt  
# chown test:root test3.txt  
# ls -l test3.txt  
-rw-r–r– 1 test root 0 2017-08-20 9:59  

示例3:

chown所接的新的屬主和新的屬組之間可以使用:連線,屬主和屬組之一可以為空。如果屬主為空,應該是“:屬組”;如果屬組為空,“:”可以不用帶上。

# ls -l test3.txt  
-rw-r–r– 1 test root 0 2017-08-20 9:59 test3.txt  
  
# chown :test test3.txt <==把檔案test3.txt的屬組改為test  
# ls -l test3.txt  
-rw-r–r– 1 test test 0 2017-08-20 9:59 test3.txt  

示例4:

chown也提供了-R引數,這個引數對目錄改變屬主和屬組極為有用,可以通過加 -R引數來改變某個目錄下的所有檔案到新的屬主或屬組。

# ls -l testdir <== 檢視testdir目錄屬性  
drwxr-xr-x 2 usr root 0 2009-10-56 10:38 testdir/ <==檔案屬主是usr使用者,屬組是 root使用者  
# ls -lr testdir <==檢視testdir目錄下所有檔案及其屬性  
total 0  
-rw-r–r– 1 usr root 0 2017-08-20 10:38 test1.txt  
-rw-r–r– 1 usr root 0 2017-08-20 10:38 test2.txt  
-rw-r–r– 1 usr root 0 2017-08-20 10:38 test3.txt  
# chown -R test:test testdir/ <==修改testdir及它的下級目錄和所有檔案到新的使用者和使用者組  
# ls -l testdir  
drwxr-xr-x 2 test test 0 2017-08-20 10:38 testdir/  
# ls -lr testdir  
total 0  
-rw-r–r– 1 test test 0 2017-08-20 10:38 test1.txt  
-rw-r–r– 1 test test 0 2017-08-20 10:38 test2.txt  
-rw-r–r– 1 test test 0 2017-08-20 10:38 test3.txt  

Contact

  • 作者:鵬磊
  • 出處:http://www.ymq.io
  • Email:[email protected]
  • 版權歸作者所有,轉載請註明出處
  • Wechat:關注公眾號,搜雲庫,專注於開發技術的研究與知識分享