Linux用戶及權限管理

接觸過Linux系統的人都知道Linux系統都是由文件組成的。那咱們就應該意識到關於文件權限的重要性。下面詳細介紹一下:node

博文大綱:數據庫

  • 用戶與用戶組;
  • Linux文件權限的重要性;
  • 文件與目錄的默認權限與隱藏權限;
  • 文件特殊權限;

1、用戶與用戶組

咱們來經過一張圖片,來詳細瞭解一下用戶與用戶組之間的關係:
Linux用戶及權限管理
經過這張圖片就能夠詳細的瞭解用戶與用戶組之間的關係!安全

咱們經過瀏覽/root目錄下的文件來了解一下每一個文件各個部分的內容:服務器

Linux用戶及權限管理

(1)第一欄表明這個文件的類型與權限

這個地方最須要注意了!仔細看的話,你應該能夠發現這一欄其實共有十個字符,每一個字符的含義,如圖:
Linux用戶及權限管理app

第一個字符表明這個文件是『目錄、文件或連接文件等等』:ide

  • 如果[ d ]則是目錄,例如上表文件名爲「.config」的那一行;
  • 如果[ - ]則是文件,例如上表文件名爲「initial-setup-ks.cfg」那一行;
  • 如果[ l ]則表示爲連接文件(link file);
  • 如果[ b ]則表示爲設備文件裏面的可供儲存的周邊設備(可隨機存取設備);
  • 如果[ c ]則表示爲設備文件裏面的序列埠設備,例如鍵盤、鼠標(一次性讀取設備);

接下來的字符中,以三個爲一組,且均爲『rwx』 的三個參數的組合。其中,[ r ]表明可讀(read)、[ w ]表明可寫(write)、[ x ]表明可執行(execute)。 要注意的是,這三個權限的位置不會改變,若是沒有權限,就會出現減號[ - ]而已。『rwx』也能夠用數字四、二、1來表示日誌

  • 第一組爲『文件擁有者可具有的權限』,以『initial-setup-ks.cfg』那個文件爲例, 該文件的擁有者
    能夠讀寫,但不可執行;
  • 第二組爲『加入此羣組之帳號的權限』;
  • 第三組爲『非本人且沒有加入本羣組之其餘帳號的權限』。

(2)第二欄表示有多少檔名連結到此節點(i-node) :

每一個文件都會將他的權限與屬性記錄到文件系統的 i-node 中,不過,咱們使用的目錄樹倒是使用文件名來記錄, 所以每一個檔名就會連結到一個 i-node 囉!這個屬性記錄的,就是有多少不一樣的檔名連結到相同的一個 i-node 號碼去就是了。code

(3)第三欄表示這個文件(或目錄)的{擁有者帳號}

(4)第四欄表示這個文件(或目錄)的所屬羣組

(5)第五欄爲這個文件的容量大小,默認單位爲 bytes

(6)第六欄爲這個文件的建檔日期或者是最近的修改日期

(7)第七欄爲這個文件的檔名

2、Linux文件權限的重要性

與 Windows 系統不同的是,在 Linux 系統當中,每個文件都多加了不少的屬性進來,尤爲是羣組的概念,這樣有什麼用途呢? 其實,最大的用途是在『數據安全性』上面的。blog

Linux文件權限的重要性主要包含這幾個方面:圖片

  • 系統保護的功能;
  • 團隊開發軟件和數據共享的功能;
  • 未將權限設定穩當的危害;

所以在設置目錄的權限和屬性時,必定要注意: 什麼數據是可變的,什麼是不可變的!

3、如何改變文件屬性與權限

咱們如今知道文件權限對於一個系統的安全重要性了,也知道文件的權限對於使用者與羣組的相關性,那麼如何修改一個文件的屬性與權限呢?又!有多少文件的權限咱們能夠修改呢? 其實一個文件的屬性與權限有不少!咱們先介紹幾個經常使用於羣組、擁有者、各類身份的權限之修改的指令,以下所示:

  • chgrp :改變文件所屬羣組;
  • chown :改變文件擁有者;
  • chmod :改變文件的權限, SUID, SGID, SBIT 等等的特性;

關於如何修改文件的擁有者、羣組、權限這些問題,實在是太簡單了,因此這裏就很少作介紹了!

4、目錄和文件之權限意義

如今咱們知道了 Linux 系統內文件的三種身份(擁有者、羣組與其餘人),知道每種身份都有三種權限(rwx), 已知道可以使用 chown, chgrp, chmod 去修改這些權限與屬性,固然,利用 ls -l 去觀察文件也沒問題。

1) 權限對文件的重要性

文件是實際含有數據的地方,包括通常文本文件、數據庫內容文件、二進制可執行文件等等。所以,權限對於文件來講,它的意義是這樣的:

  • r(read):可讀取此一文件的實際內容,如讀取文本文件的文字內容等;
  • w (write):能夠編輯、新增或者是修改該文件的內容(但不含刪除該文件);
  • x (eXecute):該文件具備能夠被系統執行的權限。

在Windows系統下,文件的擴展名會起到做用,可是,在LInux系統中,文件的擴展名是不起任何做用的!

2)權限對目錄的重要性

文件是存放實際數據的所在,那麼目錄主要是儲存啥玩意啊?目錄主要的內容在記錄文件名列表,文件名與目錄有強烈的關連啦!

  • r (read contents in directory):表示具備讀取目錄結構列表的權限,因此當你具備讀取(r)一個目錄的權限時,表示你能夠查詢該目錄下的文件名數據。 因此你就能夠利用 ls 這個指令將該目錄的內容列表顯示出來;
  • w (modify contents of directory):這個可寫入的權限對目錄來講,是很了不得的! 由於他表示你具備異動該目錄結構列表的權限,也就是底下這些權限:
    ① 創建新的文件與目錄;
    ② 刪除已經存在的文件與目錄(不論該文件的權限爲什麼!)
    ③ 將已存在的文件或目錄進行改名;
    ④ 搬移該目錄內的文件、目錄位置。

總之,目錄的 w 權限就與該目錄底下的文件名異動有關就對了啦!

  • x (access directory):咦!目錄的執行權限有啥用途啊?目錄只是記錄文件名而已,總不能拿來執行吧?沒錯!目錄不能夠被執行,目錄的 x 表明的是用戶可否進入該目錄成爲工做目錄的用途! 所謂的工做目錄(work directory)就是你
    目前所在的目錄啦!舉例來講,當你登入 Linux 時, 你所在的家目錄就是你當下的工做目錄。而變換目錄的指令是『cd』(change directory)囉!

詳細介紹,你們看的有點費勁,故意總結成一個表,供你們參考:
Linux用戶及權限管理

3)用戶操做功能與權限

經過表的形式瞭解一下:
Linux用戶及權限管理

5、文件與目錄的默認權限與隱藏權限

咱們都知道新建的文件權限是644;新建的目錄的權限是755。那麼你們知道這些權限是怎麼來的嗎?
那是由於文件的默認權限是666;目錄的默認權限是777;

[root@localhost ~]# umask
0022

用文件或目錄的默認權限減去umask值,即是新建文件或目錄的權限,至於如何修改這個umask值,方法以下:

[root@localhost ~]# umask 111
[root@localhost ~]# umask
0111

umask值的第一位是特殊權限,這裏先忽略!

1)隱藏權限

可使用chattr命令進行設置;使用lsattr能夠查看文件或目錄的隱藏權限;

chattr命令的經常使用參數有:

    • 在原有參數設定基礎上,追加參數;
    • 在原有參數設定基礎上,移除參數;
  • = 更新爲指定參數設定;
  • A 文件或目錄的 atime (access time)不可被修改(modified), 能夠有效預防例如手提電腦磁盤I/O錯誤的發生;
  • S 硬盤I/O同步選項,功能相似sync;
  • a 即append,設定該參數後,只能向文件中添加數據,而不能刪除,多用於服務器日誌文件安全,只有root才能設定這個屬性;
  • c 即compresse,設定文件是否經壓縮後再存儲。讀取時須要通過自動解壓操做;
  • d 即no dump,設定文件不能成爲dump程序的備份目標;
  • i 設定文件不能被刪除、更名、設定連接關係,同時不能寫入或新增內容。i參數對於文件 系統的安全設置有很大幫助;
  • j 即journal,設定此參數使得當經過mount參數:data=ordered 或者 data=writeback 掛 載的文件系統,文件在寫入時會先被記錄(在journal中)。若是filesystem被設定參數爲 data=journal,則該參數自動失效;
  • s 保密性地刪除文件或目錄,即硬盤空間被所有收回;
  • u 與s相反,當設定爲u時,數據內容其實還存在磁盤中,能夠用於undeletion;

lsattr命令的經常使用參數有:

  • -a :將隱藏文件的屬性也列出來;
  • -d :若是接的是目錄,僅列出目錄自己的屬性而非目錄內的文件名;
  • R :連同子目錄的數據也一併列出來!

2)文件特殊權限

文件 的特殊權限分爲:SUID、SGID、SBIT。

SUID的權限對一個文件的特殊權限:

  • SUID權限僅對二進制程序有效;
  • 執行這對於該程序須要具備x的可執行權限;
  • 本權限僅在執行程序的過程當中有效;
  • 執行者經具備該程序擁有者的權限;

注意:SUID僅針對文件,不能夠針對目錄!

SGID的功能:

  • SGID對二進制程序有用;
  • 程序執行者對於該程序來講,需具備x的權限;
  • 執行者在執行的過程當中將會得到該程序羣組的權限;

注意:SGID能夠針對文件,也可針對目錄!

SBIT對於目錄的做用:

  • 當使用者對於此目錄具備w、x權限,具備寫入的權限;
  • 當使用者在該目錄下建立文件或目錄是,僅是本身與root纔有權利刪除該文件;

注意:SBIT僅針對目錄有效!

關於文件或目錄的權限就簡單介紹這麼多!

———————— 本文至此結束,感謝閱讀 ————————

相關文章
相關標籤/搜索