Linux文件屬性與權限

    Linux中每個文件都有相當多的屬性和權限,需要明確文件擁有者(owner)、羣組(group)、非羣組外的其他人(other)的概念。
    Linux系統當中,默認情況下,所有的系統上的賬號與一般身份使用者,還有root的相關信息,都是記錄在/etc/passwd這個文件內。個人的密碼則是記錄在/etc/shadow這個文件下。此外,Linux所有的組名都紀錄在/etc/group內!這三個文件可以說是Linux系統裏面賬號、密碼、羣組信息的集中地。
Linux文件屬性
    通過執行[ls –al]命令,列出所有文件詳細的權限與屬性(包括隱藏文件,就是文件名第一個字符爲『.』的文件)。

1、文件權限:
 

    第一個字符代表文件類型[目錄、文件、連接文件等]。
    接下來的字符中,以三個爲一組,均爲『rwx』的三個參數的組合。其中[r]代表可讀(read)、[w]代表可寫(write)、[x]代表可執行(execute)。這三個權限的位置不會改變,如果沒有權限,就會出現減號[-]。
2、連接點:  每個文件都會將他的權限與屬性記錄到文件系統的i-node中,不過,我們使用的目彔樹卻是使用文件名來記錄,因此每個文件名就會連結到一個i-node!這個屬性記錄得就是有多少不同的文件名連結到相同的一個i-node號碼。
3、擁有者:  文件或目錄的擁有者賬號;
4、羣組:    文件的所屬羣組;
5、文件容量:默認爲bytes;
6、修改日期:文件的創建日期或者是最近的修改日期;
7、文件名:  如果檔文件名前多一個『.』,則代表這個文件爲『隱藏文件』。
    改變文件的權限和屬性可以通過chgrp(改變羣組)、chown(改變擁有者)、chmod(改變讀寫執行的權限)三個基本命令來實現。
改變權限的方式
1、數字類型改變文件權限
    Linux文件的基本權限有九個,分別是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
所以當把文件改爲具備上述權限時,可以通過chmod執行『chmod 770 filename』。

2、符號類型改變文件權限
    user、group 、others三種身份可以由u、g、o來代表三種身份的權限!此外,a則代表all亦即全部的身份;讀寫權限仍用r、w、x來表示。

    假如需要『-rwxr-xr--』這樣的權限,可以使用『chmod u=rwx,g=rx,o=r filename』來設定。此外,如果不知道原先的文件屬性,而只想要增加.bashrc這個檔案的每個人均可寫入的權限,可以使用:『chmod a+w .bashrc』。

文件與目錄的權限意義
1、文件權限的意義

    文件是實際含有數據的地方,包括一般文本文件、數據庫內容文件、二進制可執行文件(binary program)等等。權限對文件來說意義如下:
    •  r (read):可讀取此一文件的實際內容,如讀取文本文件的文字內容等;
    •  w (Write):可以編輯、新增或者是修改該文件的內容(但不含刪除該文件);
    •  x (eXecute):該文件具有可以被系統執行的權限。
    對於文件來說,rwx主要都是針對『文件的內容』而言,與文件名的存在與否沒有關係!
2、目錄權限的意義
    r (read contents in directory):
    表示具有讀取目錄結構列表的權限,所以當你具有讀取(r)一個目彔的權限時,表示你可以查詢該目錄下的文件名數據。 所以你就可以利用ls這個指令將該目錄的內容列表顯示出來!
    w (modify contents of directory):
    這個可寫入的權限對目彔來說,表示你具有移動該目錄結構列表的權限,也就是底下這些權限:
    o  建立新的文件或目錄;
    o  刪除已經存在的文件或目錄(不論該文件的權限爲何!)
    o  將已存在的文件或目錄進行更名;
    o  搬移該目錄內的文件、目錄位置。
    總之,目錄的w權限就是與該目錄底下的文件名移動有關就對了!
    x (access directory):
    目錄不可以被執行,目錄的x代表的是用戶能否進入該目錄成爲工作目錄的用途!所謂的工作目錄(work directory)就是你目前所在的目錄!舉例來說,當你登入Linux時,你所在的家目錄就是你當下的工作目錄。而變換目錄的指令是『cd』(change directory)!

-----摘錄整理自鳥哥的私房菜

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章