接觸過Linux系統的人都知道Linux系統都是由文件組成的。那咱們就應該意識到關於文件權限的重要性。下面詳細介紹一下:node
博文大綱:數據庫
- 用戶與用戶組;
- Linux文件權限的重要性;
- 文件與目錄的默認權限與隱藏權限;
- 文件特殊權限;
咱們來經過一張圖片,來詳細瞭解一下用戶與用戶組之間的關係:
經過這張圖片就能夠詳細的瞭解用戶與用戶組之間的關係!安全
咱們經過瀏覽/root目錄下的文件來了解一下每一個文件各個部分的內容:服務器
這個地方最須要注意了!仔細看的話,你應該能夠發現這一欄其實共有十個字符,每一個字符的含義,如圖:app
第一個字符表明這個文件是『目錄、文件或連接文件等等』:ide
- 如果[ d ]則是目錄,例如上表文件名爲「.config」的那一行;
- 如果[ - ]則是文件,例如上表文件名爲「initial-setup-ks.cfg」那一行;
- 如果[ l ]則表示爲連接文件(link file);
- 如果[ b ]則表示爲設備文件裏面的可供儲存的周邊設備(可隨機存取設備);
- 如果[ c ]則表示爲設備文件裏面的序列埠設備,例如鍵盤、鼠標(一次性讀取設備);
接下來的字符中,以三個爲一組,且均爲『rwx』 的三個參數的組合。其中,[ r ]表明可讀(read)、[ w ]表明可寫(write)、[ x ]表明可執行(execute)。 要注意的是,這三個權限的位置不會改變,若是沒有權限,就會出現減號[ - ]而已。『rwx』也能夠用數字四、二、1來表示日誌
每一個文件都會將他的權限與屬性記錄到文件系統的 i-node 中,不過,咱們使用的目錄樹倒是使用文件名來記錄, 所以每一個檔名就會連結到一個 i-node 囉!這個屬性記錄的,就是有多少不一樣的檔名連結到相同的一個 i-node 號碼去就是了。code
與 Windows 系統不同的是,在 Linux 系統當中,每個文件都多加了不少的屬性進來,尤爲是羣組的概念,這樣有什麼用途呢? 其實,最大的用途是在『數據安全性』上面的。blog
Linux文件權限的重要性主要包含這幾個方面:圖片
所以在設置目錄的權限和屬性時,必定要注意: 什麼數據是可變的,什麼是不可變的!
咱們如今知道文件權限對於一個系統的安全重要性了,也知道文件的權限對於使用者與羣組的相關性,那麼如何修改一個文件的屬性與權限呢?又!有多少文件的權限咱們能夠修改呢? 其實一個文件的屬性與權限有不少!咱們先介紹幾個經常使用於羣組、擁有者、各類身份的權限之修改的指令,以下所示:
關於如何修改文件的擁有者、羣組、權限這些問題,實在是太簡單了,因此這裏就很少作介紹了!
如今咱們知道了 Linux 系統內文件的三種身份(擁有者、羣組與其餘人),知道每種身份都有三種權限(rwx), 已知道可以使用 chown, chgrp, chmod 去修改這些權限與屬性,固然,利用 ls -l 去觀察文件也沒問題。
文件是實際含有數據的地方,包括通常文本文件、數據庫內容文件、二進制可執行文件等等。所以,權限對於文件來講,它的意義是這樣的:
在Windows系統下,文件的擴展名會起到做用,可是,在LInux系統中,文件的擴展名是不起任何做用的!
文件是存放實際數據的所在,那麼目錄主要是儲存啥玩意啊?目錄主要的內容在記錄文件名列表,文件名與目錄有強烈的關連啦!
總之,目錄的 w 權限就與該目錄底下的文件名異動有關就對了啦!
詳細介紹,你們看的有點費勁,故意總結成一個表,供你們參考:
經過表的形式瞭解一下:
咱們都知道新建的文件權限是644;新建的目錄的權限是755。那麼你們知道這些權限是怎麼來的嗎?
那是由於文件的默認權限是666;目錄的默認權限是777;
[root@localhost ~]# umask 0022
用文件或目錄的默認權限減去umask值,即是新建文件或目錄的權限,至於如何修改這個umask值,方法以下:
[root@localhost ~]# umask 111 [root@localhost ~]# umask 0111
umask值的第一位是特殊權限,這裏先忽略!
可使用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命令的經常使用參數有:
文件 的特殊權限分爲:SUID、SGID、SBIT。
SUID的權限對一個文件的特殊權限:
- SUID權限僅對二進制程序有效;
- 執行這對於該程序須要具備x的可執行權限;
- 本權限僅在執行程序的過程當中有效;
- 執行者經具備該程序擁有者的權限;
注意:SUID僅針對文件,不能夠針對目錄!
SGID的功能:
- SGID對二進制程序有用;
- 程序執行者對於該程序來講,需具備x的權限;
- 執行者在執行的過程當中將會得到該程序羣組的權限;
注意:SGID能夠針對文件,也可針對目錄!
SBIT對於目錄的做用:
- 當使用者對於此目錄具備w、x權限,具備寫入的權限;
- 當使用者在該目錄下建立文件或目錄是,僅是本身與root纔有權利刪除該文件;
注意:SBIT僅針對目錄有效!
關於文件或目錄的權限就簡單介紹這麼多!
———————— 本文至此結束,感謝閱讀 ————————