chmod及chown命令詳解


1,chmod

指令名稱 : chmod 
使用權限 : 所有使用者 
使用方式 : chmod [-cfvR] [--help] [--version] mode file... 
說明 : Linux/Unix 的檔案調用權限分為三級 : 檔案擁有者、群組、其他。利用 chmod 可以藉以控制檔案如何被他人所調用。 

  root:系統特權用戶類,既 UID = 0 的用戶 
  owner:擁有文件的用戶 
  group:擁有文件的用戶組 
  other:不屬於上面 3 類的所有其他用戶

參數 : 
  mode : 權限設定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中 
  u 表示該檔案的擁有者,g 表示與該檔案的擁有者屬於同一個群體(group)者,o 表示其他以外的人,a 表示這三者皆是。 
  + 表示增加權限、- 表示取消權限、= 表示唯一設定權限。 
  r 表示可讀取,w 表示可寫入,x 表示可執行,X 表示只有當該檔案是個子目錄或者該檔案已經被設定過為可執行。 
  -c : 若該檔案權限確實已經更改,才顯示其更改動作 
  -f : 若該檔案權限無法被更改也不要顯示錯誤訊息 
  -v : 顯示權限變更的詳細資料 
  -R : 對目前目錄下的所有檔案與子目錄進行相同的權限變更(即以遞回的方式逐個變更) 
  --help : 顯示輔助說明 
  --version : 顯示版本 

舉例:

1,將檔案 file1.txt 設為所有人皆可讀取 : 

chmod ugo+r file1.txt  

2,將檔案 file1.txt 設為所有人皆可讀取 : 

chmod a+r file1.txt  

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

chmod ug+w,o-w file1.txt file2.txt  

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

chmod u+x ex1.py  

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

chmod -R a+r *  

6,此外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=5。

7,chmod a=rwx file  和 chmod 777 file  效果相同 chmod ug=rwx,o=x file  和 chmod 771 file  效果相同 

  若用chmod 4755 filename可使此程序具有root的權限.

PS:此處chmod 4755 filename中的第一位數4表示高位特殊權限
  主要有三種高位特殊權限 S :SUID SGID SBIT
 
 SUID 4 :當一個設置了SUID 位的可執行文件被執行時,該文件將以所有者的身份運行,也就是說無論誰來執行這個文件,他都有文件所有者的特權。如果所有者是 root 的話,那么執行人就有超級用戶的特權了。(對文件進行操作,eg:修改密碼的時候除了root用戶可以修改密碼,普通用戶可以修改密碼,原因就是因為采用了SUID,普通用戶以root用戶的權限來執行修改密碼的操作)
 
  SGID 2當一個設置了SGID 位的可執行文件運行時,該文件將具有所屬組的特權, 任意存取整個組所能使用的系統資源。若一個目錄設置了SGID,則所有被復制到這個目錄下的文件, 其所屬的組都會被重設為和這個目錄一樣,除非在復制文件時加上-p (preserve,保留文件屬性)的參數,才能保留原來所屬的群組設置。(對文件夾進行操作,將SUID的s放到文件所在的用戶組X位置上的話,就是SGID)
 
sticky Bit(SBIT)1這個就是針對other來設置的了,和上面兩個一樣,只是功能不同而已。eg:最具有代表的就是/tmp目錄,任何人都可以在/tmp內增加、修改文件(因為權限全是rwx),但僅有該文件/目錄建立者與 root能夠刪除自己的目錄或文件。(當用戶在該目錄下建立文件或目錄時,僅有自己與 root才有權力刪除。)
  對一個文件設置了sticky-bit之后,盡管其他用戶有寫權限, 也必須由屬主執行刪除、移動等操作。
  對一個目錄設置了sticky-bit之后,存放在該目錄的文件僅准許其屬主執行刪除、 移動等操作。
 
4 為 SUID = u+s 
2 為 SGID = g+s 
1 為 SBIT = o+t 
當然數字也可以相加,但是必須是符合上面的對文件和目錄的限制才會起作用,“-”就是去除某個權限

chmod u+s temp -- 為temp文件加上setuid標志. (setuid 只對文件有效,U=用戶) 
chmod g+s tempdir -- 為tempdir目錄加上setgid標志 (setgid 只對目錄有效,g=組名) 
chmod o+t temp -- 為temp文件加上sticky標志 (sticky只對文件有效

 2,chown

chown就是修改 第一列內容的 ,chmod是修改 第3,4列內容的。
 

用來更改某個目錄或文件的用戶名和用戶組的
chown 用戶名:組名 文件路徑(可以是就對路徑也可以是相對路徑)
例1:

chown root:root /tmp/tmp1

就是把tmp下的tmp1的用戶名和用戶組改成root和root(只修改了tmp1的屬組).
例2:

chown -R root:root /tmp/tmp1

就是把tmp下的tmp1下的所有文件的屬組都改成root和root。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM