linux chmod命令更改檔案的讀寫執行許可權
linux
chmod命令是在日常運維中比較常用的命令之一,對檔案管理比較重要,如設定web目錄時需設定特定的許可權以保證伺服器安全。提示:在寫完shell指令碼後,我們一般需要給這指令碼設定許可權:chmoda+x
shell.sh
有很多人,特別是搞開發的程式設計師,不懂許可權,對程式及目錄直接給予chmod-R 777file,這種最高階的許可權,對伺服器安全會造成很大的安全隱患,一般不建議這樣設定,在線上伺服器上,可配置chown來設定web目錄許可權,如對使用者上傳圖片的目錄設定為web執行使用者者的許可權,對需要用程式操作的web中目錄,也同樣的設定:chown-R
apache:apacheweb
linux命令:chmod
使用許可權:所有使用者使用方式:chmod [-cfvR] [--help] [--version] mode file...
說明:Linux/Unix
的檔案呼叫許可權分為三級:檔案擁有者[屬主]、屬組、其他使用者。利用chmod可以控制檔案如何被他人所呼叫。與chmod相關的命令:chown,umask,
引數:
mode: 許可權設定字串,格式如下:[ugoa...][[+-=][rwxX]...][,...],其中
u表示該檔案的擁有者[user],
g表示與該檔案的擁有者屬於組(group)
o表示其他使用者[other],
a表示這三者皆是[all]。(常用)
+表示增加許可權、(常用)
-表示取消許可權、(常用)
=表示唯一設定許可權。
r表示有可讀取的許可權,
w表示有可寫入的許可權,
x表示有可執行的許可權,
X表示只有當該檔案是個子目錄或者該檔案已經被設定過為可執行。 -c:
若該檔案許可權確實已經更改,才顯示其更改動作 -f:
若該檔案許可權無法被更改也不要顯示錯誤訊息 -v:
顯示許可權變更的詳細資料
-R : 對目前目錄下的所有檔案與子目錄進行相同的許可權變更(常用)
--help : 顯示幫助
--version : 顯示版本
r=4(二進位制100),
w=2(二進位制010
x=1(二進位制001) rwx屬性則4+2+1=7;
rw-屬性則4+2=6; r-x屬性則4+1=5。
[[email protected]]# ll
total 8
drwxr-xr-x 2 root root 4096 Apr 29 14:50linuxyw
-rw-r--r--1 root root 36 Apr 27 23:40 linuxyw.com
-rw-r--r-- 1 root root 0 Apr 29 14:46 www.linuxyw.com
示例:給檔案修改所有為所有人可讀許可權:
chmodugo+r linuxyw.com
或
chmoda+r linuxyw.com
給檔案修改所有為所有人可執行許可權:
chmoda+x linuxyw.com
給檔案修改所有為檔案屬主使用者可執行許可權:
chmodu+x linuxyw.com
把linuxyw目錄下的檔案設定為所有人可執行許可權:
chmod-R a+x linuxyw/
把linuxyw目錄下的檔案全部設定為755許可權:
chmod-R 755 linuxyw/
取消linuxyw目錄下的所有檔案可寫許可權:
chmod-R a-w linuxyw/
先看一下檔案的許可權格式先看一下檔案的許可權格式
[[email protected]]# ll
total 8
drwxr-xr-x2 root root 4096 Apr 29 14:50
linuxyw
-rw-r--r--1 root root 36 Apr 27 23:40 linuxyw.com
-rw-r--r--1 root root 0 Apr 29 14:46www.linuxyw.com
ll的結果返回七列,分別表示如下含義:第一欄[檔案屬性]
第二欄
[檔案數]
第三欄
[擁有者]
第四欄[所有者群組]
第五欄[大小]
第六欄[建檔日期]
第七欄[檔名]
我們設定檔案的許可權就是這是第一欄裡的檔案屬性。檔案屬性這塊共有十個欄位,如:drwxr-xr-x
我們把這10個列分成4塊:[d][rwx]
[r-x] [r-x]
第一塊:也就是第一列,用來表示這個檔案的型別,有如下值:(1)[d ]則是目錄,我這裡的是d,表示的是一個目錄(2)[- ]則是檔案;(3)[l ]則表示為連結檔(linkfile);(4)[b ]則表示為裝置檔案裡面的可供儲存的介面裝置;(5)[c ]則表示為裝置檔案裡面的串列埠裝置,例如鍵盤、滑鼠。第二塊:第2到4列,表示檔案擁有者的許可權。第三塊:第5到7列,表示擁有者同組人的許可權。第四塊:第8到10列,表示是非擁有者組人的許可權。這些許可權均有[rwx]三個引數表示,而且分別對應不同的位置。每塊由3個列組成,每列對應一個值。[r
]代表可讀、[w ]代表可寫、[x ]代表可執行。舉例:如果擁有者只有只讀的許可權,那麼第2到4列就是[r--],有讀寫的許可權就是[rw-],有讀寫和執行的權利就是[rwx].
使用數字賦權的命令格式如下:
chmod abc filename
其中的abc分別代表3個數字,並且分別對應問個不同的屬組。即:數字a對應第2到4位,表示擁有者的許可權。數字b對應第5到7位,表示同組使用者的許可權。數字c對應第8到10位,表示其他組的許可權。
rwx 對應4,2,1.那麼只讀的許可權用4表示[r--],讀寫用6(4+2)表示[rw-],讀寫加執行用7(4+2+1)表示[rwx]。只讀加執行用5(4+1)表示[r-x]。示例:
chmod 755 file1
chmod 777 file1 <==> chmoda=rwx file
chmod 771 file <==> chmod ug=rwx,o=xfile