1. 程式人生 > >linux chmod命令更改檔案的讀寫執行許可權

linux chmod命令更改檔案的讀寫執行許可權

linux chmod命令是在日常運維中比較常用的命令之一,對檔案管理比較重要,如設定web目錄時需設定特定的許可權以保證伺服器安全。提示:在寫完shell指令碼後,我們一般需要給這指令碼設定許可權:chmoda+x shell.sh
有很多人,特別是搞開發的程式設計師,不懂許可權,對程式及目錄直接給予chmod-R 777file這種最高階的許可權,對伺服器安全會造成很大的安全隱患,一般不建議這樣設定,在線上伺服器上,可配置chown來設定web目錄許可權,如對使用者上傳圖片的目錄設定為web執行使用者者的許可權,對需要用程式操作的web中目錄,也同樣的設定:chown-R apache:apacheweb

,其它只讀的檔案或目錄,保持root許可權即可,這樣可以增加伺服器安全性
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 ]則表示為裝置檔案裡面的串列埠裝置,例如鍵盤、滑鼠。第二塊:第24列,表示檔案擁有者的許可權。第三塊:第57列,表示擁有者同組人的許可權。第四塊:第810列,表示是非擁有者組人的許可權。這些許可權均有[rwx]三個引數表示,而且分別對應不同的位置。每塊由3個列組成,每列對應一個值。[r ]代表可讀、[w ]代表可寫、[x ]代表可執行。舉例:如果擁有者只有只讀的許可權,那麼第24列就是[r--],有讀寫的許可權就是[rw-],有讀寫和執行的權利就是[rwx].
使用數字賦權的命令格式如下:
chmod abc filename
其中的abc分別代表3個數字,並且分別對應問個不同的屬組。即:數字a對應第24位,表示擁有者的許可權。數字b對應第57位,表示同組使用者的許可權。數字c對應第810位,表示其他組的許可權。

rwx
對應421.那麼只讀的許可權用4表示[r--]讀寫用64+2)表示[rw-],讀寫加執行用74+2+1)表示[rwx]。只讀加執行用54+1)表示[r-x]。示例:
chmod 755 file1
chmod 777 file1 <==> chmoda=rwx file
chmod 771 file <==> chmod ug=rwx,o=xfile