LINUX檔案許可權
系統環境:CentOS Linux release 7.3.1611 x86_64 GNU/Linux
檔案屬性
Linux檔案的基本屬性共有9個,分別對應u|g|o組別的r|w|x屬性,如下例所示:
# ll rainbow.html -rw-r--r--1Rethink Rethink207988Aug 11 13:35rainbow.html [檔案屬性][連線數] [屬主][屬組][檔案大小][修改日期][檔名]
檔案屬性的第一位表示此檔案的型別,常見的型別如下:
[d]表示為目錄 [-]表示為檔案 [l]表示為link file 連結檔案 [b]表示為裝置檔案中可供儲存的介面裝置 [c]表示為裝置檔案中的序列介面裝置,如滑鼠、鍵盤等
接下來的屬性中,將三個劃分一組,共三組,每組均為[rwx-]引數的組合,其中[r]表示可讀(read),[w]表示可寫(write),[x]表示可執行(excute)。

rainbow.html
檔案為例:
rw-
# id dockerroot uid=997(dockerroot) gid=994(dockerroot) groups=994(dockerroot) # cat /etc/passwd | grep dockerroot dockerroot:x:997:994:Docker User:/var/lib/docker:/sbin/nologin
- 第三組為其他非本使用者組的許可權(o);
更改檔案許可權
更改檔案屬組: chgrp
改變檔案所屬使用者組很簡單,直接使用 chgrp
命令即可, chgrp
是"change group"的縮寫,要注意,修改後的使用者組名稱必須在 /etc/group
檔案中存在,不然就會顯示錯誤。
# ll rainbow.html -rw-rw-r-- 1 Rethink Rethink 21 Oct1 11:47 rainbow.html # chgrp test1 rainbow.html '檔案屬組已被改變' # ll rainbow.html -rw-rw-r-- 1 Rethink test1 21 Oct1 11:47 rainbow.html
注意:如果是遞迴更改目錄的屬組,則需要加上 -R
引數,即將子目錄下所有的檔案和目錄的屬組都更新為此使用者組。
chgrp -R rain/
更改檔案屬主: chown
和上一個命令相對應, chown
是"change owner"的縮寫。要注意,修改後的使用者必須是已在 /etc/passwd
中存在,不然就會顯示錯誤。接上一個例子:
# chown test1 rainbow.html '檔案屬主已由Rethink變為test1' # ll rainbow.html -rw-rw-r-- 1 test1 test1 21 Oct1 11:47 rainbow.html
注意:如果是遞迴更改目錄的屬主,則需要加上 -R
引數,即將子目錄下所有的檔案和目錄的屬主都更新為此使用者。
一般來說, chgrp
命令用來修改屬組, chown
命令用來修改屬主。但其實用 chown
一個命令就夠了,它的完整命令格式為:
chown/chgrp引數 屬主:屬組檔案或目錄名
用冒號連線新的屬組和屬主,二者之一可以為空,但是冒號不能省略,比如:
# ll rainbow.html -rw-rw-r-- 1 test1 test1 21 Oct1 11:47 rainbow.html '同時修改屬組和屬主' # chown test12:test12 rainbow.html # ll rainbow.html -rw-rw-r-- 1 test12 test12 21 Oct1 11:47 rainbow.html '只修改屬組,注意冒號不能省略' # chown :dockerroot rainbow.html # ll rainbow.html -rw-rw-r-- 1 test12 dockerroot 21 Oct1 11:47 rainbow.html
補充: chown
命令支援的引數有:
-c或--changes 效果類似"-v"引數,但僅回報更改的部分。 -f或--quite或--silent 不顯示錯誤資訊。 -h或--no-dereference 之對符號連線的檔案作修改,而不更動其他任何相關檔案。 -R或--recursive 遞迴處理,將指定目錄下的所有檔案及子目錄一併處理。 -v或--version 顯示指令執行過程。 --dereference 效果和"-h"引數相同。 --help 線上幫助。 --reference=<參考檔案或目錄> 把指定檔案或目錄的擁有者與所屬群組全部設成和參考檔案或目 錄的擁有者與所屬群組相同。 --version 顯示版本資訊。
更改檔案屬性: chmod
使用 chmod
命令用來改變檔案的屬性,設定方法支援使用數字或者是符號。
-
使用數字型別改變檔案許可權
檔案的可讀、可寫和可執行許可權可以用數字表示,即:
r:4 w:2 x:1
將同屬組的3個檔案屬性代表的數字相加,如當檔案屬性為[-rwxrw-r--],則可以表示為:
u(owner)=r+w+x=4+2+1=7 g(group)=r+w=4+2=6 o(other)=r=4
當設定的屬性更改時,該檔案屬性對應的數字就是764,命令格式為:
chmod [-R] 764 filename
-
使用符號型別改變檔案許可權
下圖中,a 表示all ,即u|g|o三者的並集,我們可以通過運算子號來修改檔案屬性。
例如,我們要把
rainbow.html
檔案的許可權屬性設定為-rwxr-xr-x
,應該這樣做:
chmod u=rwx,go=rx rainbow.html
如果想增加rainbow.html檔案的寫入許可權,去除原有的執行許可權,應該這樣做:
chmod a+w,a-x rainbow.html
【To be continue...】