1. 程式人生 > >Linux: chmod 和 chown用法小結

Linux: chmod 和 chown用法小結

http://justcode.ikeepstudying.com/2016/08/linux-chmod-和-chown用法小結/

chmod


chmod指令是更改檔案讀寫執行許可權的.


檔案許可權可以通過ls -a或ll來看,在每個檔案前有10個字元,第一個是d是資料夾,否則為一劃.後面三組rwx,分別是讀取,寫入和執行的許可權; 三組分別是使用者自己,同組以及其他人的相應rwx許可權. 沒有執行許可權, 指令碼和程式也不能直接跑; 沒有寫許可權,就沒法生成和儲存檔案; 沒有讀的許可權就連訪問都難. 一般檔案許可權是755,下面將介紹.


許可權有兩種表示方式, rwx方式和數字方式. r許可權代表1,w許可權代表2,x許可權代表4,無許可權代表0. rwx許可權數字的值累加起來,就是一個使用者/組/其餘人的相應許可權,例如775代表使用者和組具有rwx許可權,而其他人只有rx許可權沒有寫許可權.


命令格式: chmod(選項)(許可權模式 檔案)


選項


-c或--changes:效果類似“-v”引數,但僅彙報更改的部分;
-f或--quiet或--silent:強制執行,不顯示錯誤資訊;
-R或--recursive:遞迴處理,將指令目錄下的所有檔案及子目錄一併處理;
-v或—-verbose:顯示指令執行過程;
--reference=<參考檔案或目錄>:把指定檔案或目錄的所屬群組全部設成和參考檔案或目錄的所屬群組相同;
許可權模式


<許可權範圍>+<許可權設定>:開啟許可權範圍的檔案或目錄的該選項許可權設定;
<許可權範圍>-<許可權設定>:關閉許可權範圍的檔案或目錄的該選項許可權設定;
<許可權範圍>=<許可權設定>:指定許可權範圍的檔案或目錄的該選項許可權設定;
其中許可權範圍為:


u: User,即檔案或目錄的擁有者;
g: Group,即檔案或目錄的所屬群組;
o: Other,除了檔案或目錄擁有者或所屬群組之外,其他使用者皆屬於這個範圍;
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.
比較重要知識點就是: 怎麼知道許可權, 怎麼改變許可權, 755代表什麼, -R 對資料夾使用.


1
chmod u+x,g+w f01  #為檔案f01設定自己可以執行,組員可以寫入的許可權
2
chmod u=rwx,g=rw,o=r f01  #rwxrw-r--
3
chmod 764 f01    #rwx-wx--x許可權
4
chmod a+x f01  #對檔案f01的u,g,o都增加可執行屬性
5
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 對資料夾, 使用者:組 的寫法就可以了.比較簡單.