一個檔案一經建立,就具有三種訪問方式:
1) 讀,可以顯示該檔案的內容。
2) 寫,可以編輯或刪除它。
3) 執行,如果該檔案是一個s h e l l指令碼或程式。
按照所針對的使用者,檔案的許可權可分為三類:
1) 檔案屬主,建立該檔案的使用者。
2) 同組使用者,擁有該檔案的使用者組中的任何使用者。
3) 其他使用者,即不屬於擁有該檔案的使用者組的某一使用者
檔案的全部資訊包括以下:
- 檔案的位置。
- 檔案類型。
- 檔案長度。
- 哪位使用者擁有該檔案,哪些使用者可以訪問該檔案。
- 節點。
- 檔案的修改時間。
- 檔案的許可權位。
可以通過ls -l來查看這些資訊,如下面
[root@ksharpdabu home]# ls -ltotal 24drwxr-xr-x 2 root root 4096 Mar 15 10:00 Bakblog-rwx------ 1 root root 786 Mar 15 10:18 backupblog.sh-rw-r--r-- 1 root root 614 Mar 16 18:38 bk.shdrwx------ 2 www www 4096 Feb 28 17:04 wwwdrwxr-xr-x 7 www www 4096 Mar 15 10:04 wwwroot
total24:表示該目錄下所有檔案所佔用的空間
前面的一橫杠表示普通檔案,以下是檔案類型:
- d 目錄。
- l 符號連結(指向另一個檔案)。
- s 通訊端檔案。
- b 塊裝置檔案。
- c 字元裝置檔案。
- p 具名管道檔案。
- - 普通檔案,或者更準確地說,不屬於以上幾種類型的檔案。
-rw-r--r--:表示檔案的相關許可權,除去前面的橫杠,總共九個字元,
分別對應9個許可權,前三個字元代表檔案屬主許可權,中間三個代表同組使用者權限,後面三個字元代表其他使用者權限。每個人對檔案都有三種操作
- r 讀許可權
- w 寫/更改許可權
- x 執行該指令碼或程式的許可權
當使用者建立一個新的 檔案時候,系統為了安全考慮,一般不會給檔案的建立者執行的許可權,即x。,對於檔案屬主來說,在只有讀許可權位被置位的情況下,仍然可以通過檔案重新導向的方法向該檔案寫入。注意能否刪除一個檔案還依賴於該檔案所在目錄許可權位的設定。我個人認為是取檔案所在目錄和檔案自身許可權的交集。
件所在目錄許可權位的設定。 一些舉例:
許可權所代表的含義
- r-- --- --- 文檔案屬主可讀,但不能寫或執行
- r-- r-- --- 文檔案屬主和同組使用者(一般來說,是檔案屬主所在的預設組)可讀
- r-- r-- r- - 文任何使用者都可讀,但不能寫或執行
- rwx r-- r- - 文檔案屬主可讀、寫、執行,同組使用者和其他使用者只可讀
- rwx r-x --- 文檔案屬主可讀、寫、執行,同組使用者可讀、執行
- rwx r-x r- x 文檔案屬主可讀、寫、執行,同組使用者和其他使用者可讀、執行
- rw- rw- --- 文檔案屬主和同組使用者可讀、寫
- rw- rw- r- - 文檔案屬主和同組使用者可讀、寫,其他使用者可讀
- rw- rw- --- 文檔案屬主和同組使用者及其他使用者讀可以讀、寫,慎用這種使用權限設定,因為任何使用者都可以寫入該檔案
改變檔案或目錄的許可權的方法,以下命令常用,切記
- chmod命令的一般格式為:
- chmod [who] operator [permission] filename
- w h o的含義是:
- u 檔案屬主許可權。
- g 同組使用者權限。
- o 其他使用者權限。
- a 所有使用者(檔案屬主、同組使用者及其他使用者)。
- o p e r a t o r的含義:
- + 增加許可權。
- - 取消許可權。
- = 設定許可權。
- p e r m i s s i o n的含義:
- r 讀許可權。
- w 寫入權限。
- x 執行許可權。
- s 檔案屬主和組s e t - I D。
- t 粘性位*。
- l 給檔案加鎖,使其他使用者無法訪問。
- u,g,o 針對檔案屬主、同組使用者及其他使用者的操作。
- *在列檔案或目錄時,有時會遇到“ t”位。“t”代表了粘性位。如果在一個目錄上出現 “t”位,這就意味著該目錄中的 檔案只有其屬主才可以刪除,即使某個同組使用者具有和屬主
同等的許可權。不過有的系統在這一規則上並不十分嚴格。
如果在檔案清單時看到“ t”,那麼這就意味著該指令碼或程式在執行時會被放在交換區(虛
存)。不過由於當今的記憶體價格如此之低,大可不必理會檔案的“ t”的使用。
舉例:修改myfile的許可權
命令 結果 含義
chmod a-x myfile rw- rw- rw- 收回所有使用者的執行許可權
chmod og-w myfile rw- r-- r- - 收回同組使用者和其他使用者的寫入權限
chmod g+w myfile rw- rw- r- - 賦予同組使用者寫入權限
chmod u+x myfile rwx rw- r- - 賦予檔案屬主執行許可權
chmod go+x myfile rwx rwx r- x 賦予同組使用者和其他使用者執行許可權
當我們建立test檔案時,它的許可權如下:
-rw-r--r-- 1 dave admin 614 Mar 16 18:38
我希望自己具有執行許可權,而取消其他所有使用者的讀許可權,修改如下;
test的檔案許可權就變為
-rwxr----- 1 dave admin 614 Mar 16 18:38
如果希望某個指令檔對你自己來說可執行,而且你對該檔案的預設許可權很放心,那麼只要使它對你來說具有執行許可權即可。
許可權的絕對模式(就是用數字表示許可權)
chmod命令絕對模式的一般形式為:
其中mode是一個八位元。r就是4,w就是2,x就是1.
檔案屬主 同組使用者 其他使用者
r w x r w x r w x
4 + 2 + 1 4 + 2 + 1 4 + 2 + 1
7 7 7
修改test檔案為rwxr--r--
修改mydir目錄極其子目錄許可權為rwxr--r--
#chmod -R 744 mydir //其中的-R表示遞迴,就是把mydir目錄下的所有檔案,子目錄都改為744
目錄:
目 錄的許可權位和檔案有所不同。目錄的讀許可權位意味著可以列出其中的內容。寫入權限位意味著可以在該目錄中建立檔案,如果不希望其他使用者在你的目錄中建立檔案, 可以取消相應的寫入權限位。執行許可權位則意味著搜尋和訪問該目錄。如果把同組使用者或其他使用者針對某一目錄的使用權限設定為- - x,那麼他們將無法列出該目錄中的檔案。如果該目錄中有一個執行位置位的指令碼或程式,只要使用者知道它的路徑和檔案名稱,仍然可以執行它。使用者不能夠進入該目 錄並不妨礙他的執行。目錄的許可權將會覆蓋該目錄中檔案的許可權。即取他們的交集
注意,c h m o d命令不進行必要的完整性檢查,可以給某一個沒用的檔案賦予任何許可權,但
chmod 命令並不會對所設定的許可權組合做什麼檢查。因此,不要看到一個檔案具有執行許可權,
就認為它一定是一個程式或指令碼。
suid和guid這裡就不介紹了,可自行google文檔,或書籍
- chown:修改檔案所有者
- chgrp:修改檔案所有組
c h o w n命令的一般形式為:
- R選項意味著對所有子目錄下的檔案也都進行同樣的操作。- h選項意味著在改變符號連結檔案的屬主時不影響該連結所指向的目標檔案。
chgrp和chown用法差不多,可自行man
查看自己所屬於的組的命令:
查看其它使用者屬於哪個組命令: