文件基本屬性
Linux系統是一種典型的多用戶系統,不同的用戶處於不同的地位,擁有不同的權限。爲了保護系統的安全性,Linux系統對不同的用戶訪問同一文件(包括目錄文件)的權限做了不同的規定。
在Linux中我們可以使用ll或者ls –l命令來顯示一個文件的屬性以及文件所屬的用戶和組。
在Linux中第一個字符代表這個文件是目錄、文件或鏈接文件等等。
- 當爲[ d ]則是目錄
- 當爲[ - ]則是文件;
- 若是[ l ]則表示爲鏈接文檔(link file),類似 Windows 的快捷方式;
- 若是[ b ]則表示爲區塊 (block) 設備,裝置文件裏面的可供儲存的接口設備(可隨機存取裝置),就是一些儲存數據,以提供系統存取的接口設備,簡單的說就是硬盤!例如你的一號硬盤的代碼是 /dev/hda1 等等的文件;
- 若是[ c ]則表示爲字符 (character) 設備,裝置文件裏面的串行端口設備,例如鍵盤、鼠標(一次性讀取裝置)。
該文件的擁有者與羣組(owner/group);
該文件的類型;
該文件的建立日期(ctime)、最近一次的讀取時間(atime)、最近修改的時間 (mtime);
該文件的容量;
定義文件特性的旗標(flag),如 SetUID...;
該文件真正內容的指向 (pointer);
文件讀寫執行權限
每個文件的屬性由左邊第一部分的10個字符來確定(如下圖)。
從左至右用0-9這些數字來表示。
第0位確定文件類型,
第1-3位確定屬主(該文件的所有者)擁有該文件的權限。
第4-6位確定屬組(所有者的同組用戶)擁有該文件的權限,第7-9位確定其他用戶擁有該文件的權限。
其中,第1、4、7位表示讀權限,如果用"r"字符表示,則有讀權限,如果用"-"字符表示,則沒有讀權限;
第2、5、8位表示寫權限,如果用"w"字符表示,則有寫權限,如果用"-"字符表示沒有寫權限;
第3、6、9位表示可執行權限,如果用"x"字符表示,則有執行權限,
如果用"-"字符表示,則沒有執行權限。
文件屬主和屬組
對於文件來說,它都有一個特定的所有者,也就是對該文件具有所有權的用戶。
同時,在Linux系統中,用戶是按組分類的,一個用戶屬於一個或多個組。
文件所有者以外的用戶又可以分爲文件所有者的同組用戶和其他用戶。
因此,Linux系統按文件所有者、文件所有者同組用戶和其他用戶來規定了不同的文件訪問權限。
更改文件屬性
chgrp:更改文件屬組
語法:chgrp [-R] 屬組名文件名
參數選項
- -R:遞歸更改文件屬組,就是在更改某個目錄文件的屬組時,如果加上-R的參數,那麼該目錄下的所有文件的屬組都會更改。
chown:更改文件屬主,也可以同時更改文件屬組
語法:
chown [–R] 屬主名 文件名
chown [-R] 屬主名:屬組名 文件名
chmod:更改文件9個屬性
Linux文件屬性有兩種設置方法,一種是數字,一種是符號。
數字類型改變文件權限
Linux文件的基本權限就有九個,分別是owner/group/others三種身份各有自己的read/write/execute權限。
先複習一下剛剛上面提到的數據:文件的權限字符爲:『-rwxrwxrwx』, 這九個權限是三個三個一組的!其中,我們可以使用數字來代表各個權限,各權限的分數對照表如下:
- r:4
- w:2
- x:1
每種身份(owner/group/others)各自的三個權限(r/w/x)分數是需要累加的。
語法:chmod [-R] xyz 文件或目錄
選項與參數:
- xyz : 就是剛剛提到的數字類型的權限屬性,爲 rwx 屬性數值的相加。
- -R : 進行遞歸(recursive)的持續變更,亦即連同次目錄下的所有文件都會變更
符號類型改變文件權限
還有一個改變權限的方法呦!從之前的介紹中我們可以發現,基本上就九個權限分別是(1)user (2)group (3)others三種身份啦! 那麼我們就可以藉由u, g, o來代表三種身份的權限!
此外, a 則代表 all 亦即全部的身份!那麼讀寫的權限就可以寫成r, w, x!也就是可以使用底下的方式來看:
chmod | u g o a |
+(加入) -(除去) =(設定) |
r w x |
文件或目錄 |
使用舉例:
chmod a+w .bashrc
chmod a-x .bashrc
以上內容參考了http://www.runoob.com/linux/linux-file-attr-permission.html。