文件權限

文件的權限

當運行如下命令時:

[root@marvel ~]# ll /etc/passwd

出現下面結果:

-rw-r--r--. 1 root root 1933 May 19 11:14 /etc/passwd

解釋如下:

1)- 代表文件類型

-:普通文件

d:目錄文件

l:軟連接文件

s:套接字文件

p:管道文件

c:字符設備文件 無緩存,順序訪問

b:塊設備文件 有緩存,隨機訪問


2)rw-r--r-- 代表文件的權限

能使用此文件的用戶分爲三類,屬主,屬組的用戶和其他用戶

從左到右,每三位分別代表三類用戶的權限

r:讀權限

w:寫權限

x:執行權限

-:代表沒有相應位置的權限

 

對於文件,讀寫執行分別代表的含義:

r:可用文件查看類工具獲取文件內容

w:可修改其內容,只有此權限時,不能查看再修改,但是可以用重定向修改

x:可以把文件提交給內核,啓動一個進程來執行

 

對於目錄來說,讀寫執行分別代表的含義:

r:可以數用ls查看此目錄中的文件列表

w:可以在目錄中創建/刪除文件

x:可以使用ls -l查看此目錄中文件列表的詳細信息,也可以用cd進入此目錄

 

Attention:對於某個用戶來說,目錄有w權限,無論裏面文件是否有w權限,都可被刪除

 

基本的文件權限就用這9位來表示,這樣將其功能位置固定,用10表示對應其功能開關,那麼就是一個9位的二進制數,再將每三爲捆綁加以區分對每類用戶的權限,這樣就可以清晰的看到每類用戶的權限了

e.g.rw-r----- 對應二進制 110 100 000 再將每三位捆綁 變成三位的八進制數。 640 屬主讀寫權限,屬組讀權限,其他無權限,這通常是一個文件的默認權限 目錄默認 755


3). 如果有此項,則代表該文件有selinux標籤,使用ll -Z查看,如果是目錄則用ll -dZ

Following the file mode bits is a single character that specifies

     whether an alternate access method such as an access control list

     applies to the file.  When the character following the file mode

     bits is a space, there is no alternate access method.  When it is

     a printing character, then there is such a method.

    在文件權限位後面,附加有一個單字符。用來表示是否有一個

    可替換的訪問控制措施應用在這個文件上。例如,訪問控制列表(ACL,access control list)。

    當文件權限位後面附加的是一個空格時,表示系統沒有可替換的訪問控制措施。

    當是一個可打印字符時,表示系統存在這樣一個訪問控制措施。

     GNU `ls' uses a `.' character to indicate a file with an SELinux

     security context, but no other alternate access method.

     GNU的ls命令使用‘.’字符表示文件使用了selinux

     安全上下文,但是沒有其他可替代的訪問控制措施

     A file with any other combination of alternate access methods is

     marked with a `+' character.

    在使用SElinux安全上下文的同時,混用其他訪問控制措施的文件用+字符標記


4) 1代表硬鏈接或軟鏈接的數量(參見MyNewDocument/New_1/文件系統下/inode)


5)文件的屬主


6)文件的屬組


7)時間戳


8)文件或目錄名字




1.修改文件權限

  chmod [option] OCTAL/MODE file/directory

     -R 遞歸修改權限 修改目錄權限採用

     OCTAL 八進制數,在上一節上中描述了八進制數的由來,跟此處的八進制數一致

      chmod 644 file 

      將文件權限設爲644 即 rw- r-- r-- 

     

     MODE [u,g,o] [+/-/=] [rwx]

       u:代表要設置屬主權限

       g: 代表要設置屬組權限

       o:代表要設置其他權限

       a:代表所有人

       這三個可以組 例如 ug= uo+等

       

       +:某一類用戶增加權限

       -:某一類用戶減少權限

       =:指定某一類用戶的權限

       

       rwx:最多3位,要什麼權限就寫什麼權限,沒有不寫

        這是基本權限位,除此還有st

chmod --reference=rfile file 依據rfile的權限來設置file的權限

小竅門:

設置一個目錄本身及目錄中的所有文件和目錄的權限,對於所有人來說,使文件具有讀寫權限,目錄具有讀寫執行權限

chmod -R a=rwX dir

只有x位有大寫的權限,除此之外,大寫,還有ST

2.改變文件的屬主和屬組

chown [option] [owner][:group] file

     -R 遞歸修改

      owner 只修改屬主

      owner:Group 修改屬主和屬組

      :group 修改屬組

      Attention:“:”可以被.代替

chown --reference==rfile file 依據rfile的屬主屬組來設置file的屬主屬組


3.umask 參見 MyDocument/1/umask


4.特殊權限 SUID SGID Stickybit

1)安全上下文

前提:進程有屬主和屬組(但是沒有基本組和附加組的概念),文件有屬主和屬組

(1)任何一個可執行程序文件能不能啓動爲進程,取決於發起者對程序文件是否有執行權限

(2)執行文件啓動爲進程之後,其進程的屬主爲發起者,進程的屬組爲發起者的屬組

(3)進程訪問文件時的權限,取決於進程的發起者

(a)進程的發起者,就是文件的屬主,則應用文件屬主的權限

(b)進程的發起者,屬於文件的屬組,則應用文件屬組的權限

(c)應用文件“其他”權限

2)可執行文件上的SUID

(1)作用對象:二進制可執行文件

(2)標記,二進制可執行文件的屬主的執行權限位:

s:代表在設置SUID之前,這個二進制可執行文件屬主有x權限

S:代表在設置SUID之前,這個二進制可執行文件屬主沒有x權限

(3)意義:

任何一個可執行程序文件能不能啓動爲進程,取決於發起者對程序文件是否有執行權限

執行文件啓動爲進程之後,其進程的屬主不是發起者,而是可執行程序文件的屬主

以可執行二進制文件的屬主身份啓動進程,而後進程訪問的文件的權限,都要看二進制可執行文件的屬主,而非此二進制可執行文件的發起者(當前用戶)

(4)設置在目錄上無意義

chmod u+/-s file

3)SGID權限

   (1)作用對象:二進制可執行文件或目錄

 (2)標記,二進制可執行文件或目錄的屬組的執行權限位:

s:代表在設置SGID之前,這個二進制可執行文件或目錄的屬組有x權限

S:代表在設置SGID之前,這個二進制可執行文件或目錄的屬組沒有x權限

(3)意義:

(a)作用在二進制可執行文件上

任何一個可執行程序文件能不能啓動爲進程,取決於發起者對程序文件是否有執行權限

執行文件啓動爲進程之後,其進程的屬主不是發起者,而是可執行程序文件的屬組

以可執行二進制文件的屬主身份啓動進程,而後進程訪問的文件的權限,都要看二進制可執行文件的屬組,而非此二進制可執行文件的發起者(當前用戶)

(b)作用在目錄上

有這樣一種需求,有一組用戶加入了同一個組gp1,在磁盤上想創建一個目錄pub,作爲gp1組的公共目錄,每個人都可以在這個目錄中,增刪文件,修改組內成員的文件

mkdir pub

chown -R :gp1 pub

這樣組內成員都可以在pub中增刪文件,但創建的文件的屬組還是自己的屬組,也只能刪除自己的文件。

我們似乎可以這樣做

chown -R :gp1 pub

但是每每有人創建文件或目錄,管理員都要執行此操作,實在顯得有些難堪

那麼這就是目錄上SGID的發揮的地方了

默認情況下,在某目錄中,用戶創建文件或目錄時,其屬組爲用戶的屬組

一旦某目錄被設定了SGID,則對此目錄有寫權限的用戶(可能是目錄的屬主,屬組用戶,或其他用戶)在此目錄中,創建的文件或子目錄所屬的組爲此目錄的屬組,而權限要應用對應用戶的umask,

Attention:子目錄繼承sgid,且目錄(也就是前面子目錄的父目錄)設置sgid之前,其目錄內已存在的文件或目錄不會的屬組不會被修改,sgid權限也不會被修改(特指已存在的目錄)

(4)設置權限

chmod g+/-s DIR/file

4)Sticky

(1)作用對象:目錄

(2)標記目錄的其他用戶的執行權限位:

x:代表在設置sticky之前,這個目錄的屬組有x權限

X:代表在設置sticky之前,這個目錄的屬組沒有x權限

(3)意義:

    通常,對於某目錄,用戶有寫權限,那麼這個用戶就可以刪除該目錄下的任意文件或目錄(包括root的文件或目錄)

    在目錄上設置sticky位,只有文件或目錄的所有者或root可以刪除文件或目錄,但是否能修改爲文件和目錄,還是要看這個文件和目錄對於用戶來說有無權限,

    Attention:設置了sticky位的目錄的子目錄不繼承sticky

    sticky設置在文件上無意義

 

(4)設置權限

chmod o+/- dir


  5)特殊權限的數字表示法

  三個特殊權限的二進制位,組成了一個8進制數,在數字表示法中放在普通權限前面

  如chmod 4640 file 代表給文件設置了suid

 

 

 

5.另外的特定屬性

chattr +i file 不能刪除,改名和更改

dir  不能刪除,改名和創建和刪除文件

chattr +a file/dir 只能增加

lsattr 顯示這裏的特定屬性

Attention:這個屬性和cp --preserve=xattr中的xattr不是一回事

 

 


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