chmod和chown小結
阿新 • • 發佈:2018-10-31
chmod
chmod指令是更改檔案讀寫執行許可權的。
檔案許可權可以通過 ls -a 或 ll 來看,在每個檔案前有10個字元,第一個是 d 是資料夾,否則為一劃。後面三組rwx,分別是讀取,寫入和執行的許可權; 三組分別是使用者自己,同組以及其他人的相應rwx許可權。沒有執行許可權, 指令碼和程式也不能直接跑; 沒有寫許可權,就沒法生成和儲存檔案; 沒有讀的許可權就連訪問都難。一般檔案許可權是 755 ,下面將介紹。
許可權有兩種表示方式 :
- rwx 方式
數字方式
- r 許可權代表 1
- w 許可權代表 2
- x 許可權代表 4
- 無許可權代表 0
rwx許可權數字的值累加起來,就是一個使用者/組/其餘人的相應許可權,例如775代表使用者和組具有rwx許可權,而其他人只有rx許可權沒有寫許可權。
命令格式 : chmod(選項)(許可權模式 檔案)
選項
- -c or –changes : 效果類似”-v”引數,但僅彙報更改的部分 ;
- -f or –quiet : 強制執行,不顯示錯誤資訊 ;
- -R or –recursive : 遞迴處理,將指令目錄下的所有檔案及子目錄一併處理 ;
- -v or –verbose : 顯示指令執行過程 ;
- –reference=<參考檔案或目錄>
許可權模式
- <許可權範圍>+<許可權設定> : 開啟許可權範圍的檔案或目錄的該選項許可權設定 ;
- <許可權範圍>-<許可權設定> : 關閉許可權範圍的檔案或目錄的該選項許可權設定 ;
- <許可權範圍>=<許可權設定> : 指定許可權範圍的檔案或目錄的該選項許可權設定 ;
許可權範圍
- u : User , 即檔案或目錄的擁有者 ;
- g : Group , 即檔案或目錄的所屬群組 ;
- o
- a : All , 即全部的使用者,包含擁有者,所屬群組以及其他使用者 ;
許可權設定
- r : 讀取許可權,數字代號為”4” ;
- w : 寫入許可權,數字代號為”2” ;
- x : 執行或切換許可權,數字代號為”1” ;
- - : 不具任何許可權,數字代號為”0” ;
- s : 特殊功能說明 : 變更檔案或目錄的許可權 ;
- 不指明許可權範圍時預設為 All 所有人
- 兩種模式 :
- 許可權範圍+/-/=許可權設定 , 例如 u+x 就是使用者增加執行許可權 ; 不同組別設定使用
,
分隔,例如 u+wx,g+w,o-wx 這樣 ; 也可以 ug+wx寫。 o=r 就是隻有讀許可權 (r–) ; +x 就是三個組都增加執行許可權。 - 三個數字模式,例如755代表使用者具有 rwx , 組和其他人有 rx 。
- 許可權範圍+/-/=許可權設定 , 例如 u+x 就是使用者增加執行許可權 ; 不同組別設定使用
比較重要知識點就是 : 怎麼知道許可權,怎麼改變許可權,755代表什麼,-R對資料夾使用。
chmod u+x,g+w f01 #為檔案f01設定自己可以執行,組員可以寫入的許可權
chmod u=rwx,g=rw,o=r f01 #rwxrw-r--
chmod 764 f01 #rwx-wx--x許可權
chmod a+x f01 #對檔案f01的u,g,o都增加可執行屬性
chmod -R +x DirName #對整個資料夾及裡面內容都增加執行許可權
chown
chown指令是更改檔案歸屬的,歸屬哪個使用者,使用者組是什麼。對應將影響chmod裡rwx效果。
使用者可以是使用者或者是使用者D,使用者組可以是組名或組id。檔名可以使由空格分開的檔案列表,在檔名中可以包含萬用字元。-R選項後可以對整個資料夾操作。 只有檔案主(改變自己的檔案)和超級使用者(改變他人的)才可以便用該命令。非root管理員慎用。
命令格式: chown 選項 使用者:組 檔案
- -c或–changes : 效果類似 “-v” 引數,但僅彙報更改的部分 ;
- -f或–quite或–silent : 強制執行,不顯示錯誤資訊 ;
- -h或–no-dereference : 只對符號連線的檔案作修改,而不更改其他任何相關檔案 ;
- -R或–recursive : 遞迴處理,將指定目錄下的所有檔案及子目錄一併處理 ;
- -v或–version : 顯示指令執行過程 ;
- –dereference : 效果和“-h”引數相同 ;
- –help : 線上幫助 ;
- –reference=<參考檔案或目錄> : 把指定檔案或目錄的擁有者與所屬群組全部設成和參考檔案或目錄的擁有者與所屬群組相同 ;
- –version : 顯示版本資訊。
歸屬可以只更改使用者 使用者 檔案。
除了 使用者:組名 的寫法,一般linux還可以 使用者.組名(MacOS不行)
記住 -R 對資料夾, 使用者:組 的寫法就可以了 . 比較簡單。