原文位址
目錄
一、Linux檔案(目錄)權限
二、Linux檔案屬主與屬組
三、更改檔案屬性
一、Linux檔案(目錄)權限
Linux系統是一種典型的多使用者系統,不同使用者處于不同的地位,擁有不同的權限。為了保護系統的安全性,Linux系統對不同的使用者通路同一檔案(包括目錄)的權限做了不同的規定。
在Linux中我們可以使用ll或ls -l指令來顯示某一目錄下所有檔案和目錄的屬性以及所屬的使用者群組,如:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2Lc1DOXl1b5YFZr50MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2LcRHelR3LcJzLctmch1mclRXY39jM2UDNxUDNwEjMyATM4EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
在執行個體中boot的第一個屬性為“d”。“d“在linux中代表該檔案是一個目錄檔案。
Linux中第一個字元代表這個檔案是目錄、檔案或連結檔案等。
字元 | 含義 |
d | 目錄 |
- | 檔案 |
l | 連結文檔 |
b | 裝置檔案裡面的可供儲存的接口裝置(可随機存取裝置) |
c | 裝置檔案裡的串行端口裝置,例如鍵盤、滑鼠(一次性讀取裝置) |
接下來的字元中,以三個為一組,且都為[rwx]的三個參數的組合。其中,r代表可讀、w代表可寫、x代表可執行。要注意的是,這三個權限的位置不會改變,如果沒有某個權限,該位置就會出現減号-。
每個檔案的屬性由左邊第一部分的10個字元來确定:
從左至右用0-9這些數字表示。
第0位确定檔案類型,第1-3位确定屬主(該檔案的擁有者)對該檔案的權限;第4-6位确定屬組(所有者的同組使用者)對該檔案的權限;第7-9位确定其他使用者使用者對該檔案的權限。其中1,4,7位表示讀權限,用r表示有讀權限,用-表示無讀權限;2,5,8位表示寫權限,用w表示有寫權限,用-表示無寫權限;3,6,9位表示執行權限,用x表示有執行權限,用-表示無執行權限。
二、Linux檔案屬主與屬組
- 對檔案來說,它都有一個特定的所有者,也就是對該檔案具有所有權的使用者。
- 同時,Linux系統中,使用者是按組分類的,一個使用者屬于一個或多個組。
- 檔案所有者以外的使用者又可以分為檔案所有者的同組使用者和其他使用者
- 是以,Linux系統按檔案所有者、檔案所有者同組使用者和其他使用者來規定不同檔案通路權限
- 在上例中a.log是一個檔案,屬主和屬組都為root,屬主有讀寫權利,與屬主同組的其他使用者有讀權限,其他使用者有讀權限
- 對于root使用者來說,一般情況下,檔案的權限對其不起作用
三、更改檔案屬性
- chgrp:更改檔案屬組
chgrp [-R] 屬組名 檔案名
參數選項:
-R:遞歸改變檔案屬組,就是在更改某個目錄檔案的屬組時,如果加上-R參數,那麼該目錄下的所有檔案的屬組都會改變。
- chown:更改檔案屬主,也可以同時更改檔案屬組
chown [-R] 屬主名 檔案名
chown [-R] 屬主名:屬組名 檔案名
将a.log的擁有者改為bin這個賬号:
将a.log的擁有者和屬組改回root:
- chmod:更改檔案9個屬性
Linux檔案屬性有兩種設定方法,一種是數字,一種是符号。
數字類型改變檔案權限:
Linux檔案的基本權限有9個,分别是owner/group/others三種身份各有自己的read/write/execute權限。
檔案權限字元為:[-rwxrwxrwx],這九個權限是三個三個一組的!其中,我們可以用數字來代表各個權限,各權限的分數對照表:
權限 | 分數 |
r | 4 |
w | 2 |
x | 1 |
各種身份(owner/group/others)各自的三個權限(r/w/x)分數需要累加,例如當權限為:[-rwxrwx---]分數則是:
owner=rwx=4+2+1=7;group=rwx=4+2+1=7;others=---=0+0+0=0
是以我們設定權限變更時,該檔案的權限就是770.變更權限指令chmod文法:
chmod [-R] xyzzy 檔案或目錄
選項與參數:
xyz:數字類型權限屬性,為rwx屬性數值相加
-R:連同目錄下所有檔案都變更
例子:将a.log所有權限都設定啟用:
如果要把權限變成:-rwxr-xr--的話,權限分數為[4+2+1][4+0+1][4+0+0]=754
符号類型改變檔案權限:
九個權限分别是(1)user(2)group(3)others三種身份。可以用u,g,o來代表三種身份的權限。
此外a代表all全部身份。那麼讀寫執行權限就可以寫成r,w,x。如下圖所示:
如果我們需要把檔案權限設定為-rwxr-xr--,可以使用chmod u=rwx,g=rx,o=r 檔案名 來設定:
如果要将權限加入或去掉而不改變其他已存在的權限。例如去掉全部人的可執行權限: