文件的權限、擴展屬性以及facl

大綱:
一、前言
二、普通權限
三、特殊權限
四、ext文件的擴展屬性
五、文件的訪問控制列表(facl)

一、前言

linux中常見的權限有讀(r)、寫(w)、執行(x),還有3個特殊的權限。因此下面就從普通權限開始介紹起

二、普通權限

rwx:讀 寫 執行

blob.png

rwxr-xr-x : 讀寫執行 讀_執行 讀_執行  (分別對應)屬主 屬組 其他組

111101101:對應上述位轉化成10進制就是755(因此在賦予權限時就可以用 chmod 755 FILE )

在linux里面,有目錄及目錄中的文件,而上述權限相對應的目錄及文件有所不同,如下:

目錄:

r:能用ls查看目錄中的文件名列表
w:可以在目錄中添加/刪除文件
x:能夠cd進目錄,以及使用ls -l 命令查看文件列表

文件:

r:能查看文件內容
w:可以修改文件內容
x:使文件可以啟動為一個進程

權限的修改:

1、使用八進制來進行

chmod [-R] MODE FILE  :如 chmod 777 /tmp/123.txt

blob.png

[-R]遞歸修改:修改一個目錄及里面文件的權限,僅對當前文件生效,后追加的不生效 

2、指定一個或多個類別

chmod 類別 = MODE  :如 chmod u=rw /tmp/123.txt

blob.png

同理:chmod ug=rw /tmp/123.txt
    chomd o=  /tmp/123.txt   等同于 chmod o=--- /tmp/123.txt
    chomd a=r /tmp/123.txt   等同于 chmod ugo=r /tmp/123.txt

3、指定類別的權限的+/-

 chmod 類別+/- MODE : 如 chmod u+x /tmp/123.txt

blob.png

注意 chmod +w 僅對u生效 ,r x 是對a生效

4、參考其他文件的權限

chmod --reference=FILE  :如 chmod --reference=/tmp/file

blob.png

三、特殊權限

特殊權限有三類:suid sgid sticky

suid: 

修改方式:chmod u[+/-]s FILE

當進程執行此文件時,將以此文件的屬主進行執行,當然前提是此類文件都是可執行程序。

比如:/etc/shadow 是沒有權限訪問的,但是任何用戶都可以修改自己密碼,

blob.png

blob.png

當用戶(ubuntu)訪問這個文件時,實際上是以此文件的屬主root發起這個進程,所以可以修改shadow這個文件。

guid:

修改方式:chmod g[+/-]s FILE

類似于sgid

blob.png

那當上圖這種情況下,是否可以修改用戶的密碼?

要回答這個問題,我們先要知道進程訪問文件的次序,如下:

進程的屬主,是否與被訪問的文件屬主相同;
進程的屬主所屬于的組當中,是否有一個與被訪問的文件的屬組相同;
以other的權限進行訪問;

假設我們以ubuntu這個普通用戶訪問/etc/shadow 時,相當于屬主所屬的組是root(/usr/bin/passwd 的屬組root),去訪問/etc/shadow,但是shadow 的屬組雖然為root,但是卻沒有任何可執行權限,因此不能修改用戶的密碼。

blob.png

那這個guid有什么用呢?

好處如下:如果將目錄的屬組設置SGID權限之后,所有用戶在此目錄創建文件的屬組不再是用戶的基本組,而是目錄的屬組

blob.png

這樣幾個用戶就可以加入一個附加組,創建一個目錄,將其屬組改成相同的附加組;從而可以實現在同一目錄下,多用戶可以進行文件共享的操作了

如: 用戶ubuntu 、007的附加組都有一個share,/tmp/share 的屬主屬組為 root share 

因此 在/tmp/share 里面ubuntu  007 建立的文件可以互相訪問以及修改

blob.png

但是用戶可以刪除其他用戶建立的文件,要避免這個問題,需要用到以下的sticky位功能。

sticky

修改方式:chmod o[+/-]t FILE

使用了這個權限,則用戶不能刪除其他用戶創建的文件。如007 刪除不了ubuntu用戶創建的文件。

blob.png

當然以上三個權限又可以組成一個八進制數值,我們賦值的時候也可以這樣做

chmod 7111 FILE  如:chmod 7111 /tmp/share

blob.png

如果是 7000 FILE   如:chmod 7000 /tmp/share

blob.png

這就是權限位大小寫字母的區別

四、ext文件的擴展屬性

lsattr 查看屬性

blob.png

上面有個e,只要能看到這個文件,肯定都存在e屬性,表示支持這個擴展屬性格式的。

chattr修改屬性

chattr [+-=][FILE]

a:只能增加,不能修改。 
c:壓縮格式,將會自動的壓縮文件。 
d:尚未備份 
i:無法修改

以下以i屬性作為介紹,設置而了i屬性后,即使root也無法修改文件。

blob.png

五、文件的訪問控制列表(facl)

facl也是用到了文件的擴展屬性,但是和以上的文件擴展屬性沒有相關,只是有點近似。

作用:讓普通用戶透過文件的擴展屬性,為其添加額外的用戶訪問授權機制而無須改變其屬主、屬組,也不用更改other的權限

命令:     

 設置    setfacl -m   u:USERNAME/UID:MODE FILE
                g:GROUPNAME/GID:MODE FILE
 取消    setfacl  -x  u:USERNAME/UID   FILE                                      g:GROUPNAME/GID  FILE   
 查看    getfacl

舉個例子:

用戶ubuntu對一個屬主是自己的文件進行facl授權,讓用戶007可以對此文件擁有讀寫權限。但是007本身是個數字,直接使用007會導致授權到UID為7的用戶;因此使用007的uid,即4431進行授權

blob.png

用戶007進行文件的更改:

blob.png

設置了facl后,權限應用模型是 自上而下的生效的。屬主-用戶級別facl-屬組-組級別facl-其他

以上是一些體會,還有很多擴展功能還沒學到,以后再慢慢分享。

原創文章,作者:麥鯨,如若轉載,請注明出處:http://www.www58058.com/3838

(0)
麥鯨麥鯨
上一篇 2015-05-04 18:05
下一篇 2015-05-04 18:07

相關推薦

  • Linux上獲取命令幫助信息及man文檔劃分

    1.Linux上獲取命令幫助信息的多種途徑 Linux上獲取命令幫助信息有多種途徑,但不同的命令類型獲取幫助信息也有不同,Linux命令類型主要分為兩種: (1)內部命令:指的是集成于Shell解釋器程序(如Bash)內部的一些特殊指令,也成為內建(BuiltIN)指令。 內部命令屬于Shell的一部分,所以并沒有單獨對應的系統文件,只要Shell解釋器被運…

    Linux干貨 2016-10-30
  • fstab配置文件、swap分區,文件關聯

    fstab配置文件、swap分區,文件關聯,lvm 掛載點和/etc/fstab ? 配置文件系統體系 ? 被mount、 fsck和其它程序使用 ? 系統重啟時保留文件系統體系 ? 可以在設備欄使用文件系統卷標 ? 使用mount -a 命令掛載/etc/fstab中的所有文件…

    Linux干貨 2016-09-01
  • Linux系統壓縮和解壓縮工具gzip、bzip2、xz以及tar打包工具總結

    在Linux系統使用過程中,對于一些不是常用的文件,利用cpu的時間資源對文件進行壓縮可以節省一定的磁盤空間,對系統中某個目錄經常會有備份的需求,可以使用Linux系統中的tar打包工具實現,文件的壓縮對于大量的網絡文件傳輸可以節約帶寬,同時也能降低服務器的負載,我們經常需要從網站下載軟件包到本地主機,這些包基本都是打包壓縮的,要想使用安裝,需要我們解壓縮他…

    Linux干貨 2016-08-18
  • Linux的初步認識

         Linux的哲學思想 (1)一切都是一個文件(包括硬件) (2)小型,單一用途的程序 (3)鏈接程序,共同完成復雜的任務 (4)避免令人困惑的用戶界面 (5)配置數據儲存在文本中 1.Linux分為普通用戶和root用戶 普通用戶:權利非常有限對系統的損害比較小 root用戶:被稱作為超級用戶,對系統接近完整的控制,對…

    2017-05-20
  • CentOS 系統自動化安裝

    CentOS 系統自動化安裝 概述:     系統安裝過程     配置anaconda     自動化安裝系統 CentOS 系統安裝: 1.啟動流程: bootloader–>kernel(initrd)–>rootfs–>anaconda(…

    Linux干貨 2016-09-21
  • 抵御DDOS攻擊,iptables限制TCP連接和頻率

    cc攻擊一到就有點兵臨城下的感覺,正確的設置防護規則可以做到臨危不亂,這里給出一個iptables對ip進行連接頻率和并發限制,限制單ip連接和頻率的設置規則的介紹 #單個IP在60秒內只允許新建20個連接,這里假設web端口就是80, iptables -I  INPUT -i eth1 -p tcp -m tcp –dpo…

    系統運維 2016-05-08
欧美性久久久久