Linux安全優化之文件屬性查看分析

1.如何查看及讀取權限信息
首先先建立一個文件和目錄

採用ls -l查看文件權限 不能用於查看目錄權限 ls 默認查看的是目錄當中子目錄或者自文件的權限文件

首先開頭的橫槓表示的文件類型
從第二位到第十位表示這個文件對於什麼樣的人能做什麼樣的事情
後面的這個點表示的是這個文件加載了安全上下文 
1表示這個文件的內容被系統記錄的次數 也就是這個文件硬鏈接的個數(hard link) 
後面的兩個root分別表示的是文件的擁有着個擁有組 
0表示的是文件的大小 後面的時間戳表示的是文件最後一次被修改的時間 最
後一位表示文件的名稱  
這些信息被統稱爲元數據 也就是我們經常說到的屬性

對於目錄本身的權限我們要用到ls -ld這樣就可以顯示目錄本身的權限

第一位D 表示directory目錄的類型
第二位到第十位表示這個目錄對誰能什麼事情 也就是目錄本身的權限
小數點表示的是這個目錄加載拉安全上下文 
2表示目錄當中子目錄的個數 
兩個root表示目錄的所有人和所有組
6表示是目錄當中子目錄或者子文件的元數據大小也就是我們說的屬性大小
時間表示目錄當中文件名被重命名屬性被修改或者文件被刪除 文件被建立後的時間
也就是目錄當中文件的元數據被修改 這個時間就會改變 
所以說 字符相當於文件內的內容  文件的元數據相當於目錄裏面的內容 文件的內容被改變那麼 文件最後一次被更改的時間會改變 目錄當中文件的屬性被改變那麼目錄的最後一次被更改的時間纔會變化 
最後一位表示目錄的名稱

系統當中除了用ls查看文件的屬性還可以用ll來查看文件的屬性與ls的意思相同

目錄的查看可以用ls -ld  也可以用ll -d來查看  相當於命令的別名 類似與自己的名字和小名

我們可以用alias來查看命令的別名  

接下來詳細的介紹文件每一個字段的意義

首先第一位表示文件的類型  
文件的類型有:
- 表示系統當中的普通文件包括普通命令等等 沒有系統功能的一個文件 統稱爲一槓
d 表示的是目錄
s 表示套接字
l 表示的是鏈接
c 表示的是字符設備
b 表示的是塊設備

例如我們創建一個文件 這個文件是空的 系統不用這個文件來做什麼不是系統自動所調用的而是我們作爲操作着使用程序來創建的


系統的命令也是普通文件 例如  雖然是一個命令但也表示普通文件

我們隨便建立一個目錄lee d表示directory

對於套接字
S 表示socket 套接字 我們 系統當中的程序默認是封閉的 例如ls 但我們不能進入程序內部去使用這個程序但是有很多程序時可以進去執行的 例如:數據庫 可以進入程序當中去使用  (執行相應的命令 安裝數據庫看一下) 因爲爲這裏沒有安裝提供查看的方法如下圖

執行上面的命令可以看到以S開頭的權限  而我們能進去數據庫是因爲這個程序開了一扇門 這扇門就像這個套接字  如果這個門不在了  就進不去  刪除之後的效果如圖

L 相當於我們的快捷方式 官方的名稱叫做軟鏈接 軟鏈接:比如我們的mnt下由一個文件名字叫file 現在爲在桌面上也想看到這個文件 可以把它鏈接到root用戶下

這個文件就類似於一個快捷方式  文件類型以l開頭

C 字符型設備
字符設備用於顯示字符的設備 在系統當中的程序是有標準的輸入和輸出 命令存在內存空間裏 例如date 當你輸入命令再執行的過程中叫輸入 回車以後會產生一系列字符 這些字符爲什麼會顯示在桌面上是因爲這些字符被定義到一個設備裏  這個字符叫字符設備 如/dev/pts/0  文件類型以C開頭

 如果我想讓他顯示到命令行  可以 date > /dev/pts/0 

B 塊設備 位置在/dev目錄當中   系統當中有sda 表示系統當中的第一塊硬盤 當插入u盤之後就是第二塊設備  以sdb的形式存在 塊設備文件 ls -l 可以查看到 以b開頭的 我們系統中用於管理存儲的設備一般都是塊設備 都是以B開頭


在搞明白第一位權限之後 我們接着看第二位到第十位
從第二位到第十位 表示什麼樣的用戶有什麼權限被劃分成三部分  第一部分表示用戶的權力 第二部分表示用戶組的權利 第三位表示其他人的權限  小數點表示這個文件是加載了安全上下文的 安全上下文的提供程序是由我們的系統當中的selinux提供的  簡單的說selinux內核及的加強型火牆 在開啓的時候會給我們每一個程序加載一個安全上下文 相當於佳在一個標籤說明這個程序能訪問什麼樣的類型的文件 並且會給每一個文件上價格加標籤標上面寫這個文件的類型是什麼 這個標籤叫selinux  我們可以用ls -Z查看文件有沒有安全上下文 .標示加載過安全上下文

這個.有和沒有的區別:先編輯文件關閉selinux 然後重啓 selinux是內核級的插件 對於內核插件的開啓和關閉需要對內核進行初始化也就是重啓 重啓後 查看之前建立的文件 



之前加載的安全上下文還存在 但現在在建立文件  小數點沒有.了 

對比圖

後面的1 表示這個文件的內容被系統記錄了多少次也就是說這個文件裏面的數據在系統中有多少個  我們可以編輯文件之後查看文件被記錄了多少次 

可以看到文件的記錄次數並沒有發生改變 接下來我們嘗試改變這個次數 建立硬鏈接

建立硬鏈接之後 也就是說這兩個文件一模一樣 互爲硬鏈接  也就是這個文件被系統記錄了兩次
當我們刪除其中一個 再查看內容被記錄了幾次  數字又變成了1 再刪除就變成了0 就徹底不存在了 

後面的root root分別表示這個文件是超級用戶root的和超級用戶root這個組的 就想你買了個手機 屬於你 也是你們家的  

再後面一位的數字表示這個文件的大小  我們去編輯這個文件把內容刪掉 就變成拉0個字節

再寫入123加上後面的換行符 一共就是4個字節 

 在後面的時間表示文件被修改的時間我們對文件進行編輯  我們把123換成westos 發現文件的時間同步到了當前的時間 文件的內容被修改的時候這個時間纔會改變 所以這個時間也被稱爲mtime  最後一位被稱爲文件名字 

接下來是目錄的屬性代表什麼樣的意思

首先是目錄的類型 權限 數字代表這個目錄當中子目錄的個數  ls -a 可以看見。 .一個點代表當前目錄  兩個點代表當前目錄的上一個目錄 它屬於每個目錄當中的一種應用的快捷方式 ls -l -a


可以看到他們都屬於目錄 現在touch 一個file 發現這個數字沒有變化  文件不記錄在這個數字之內

建立一個目錄之後這個數字就會變成3 

後面的root表示這個目錄是誰的屬於哪個組 28不是表示目錄的大小 而是表示目錄當中屬性的大小 也就是目錄裏面記錄的原數據的大小

例如  ls -ld /mnt/westos 記錄的是28  ls -a /mnt/westos  我們新建一個文件touch 1  
Ls -l 1 看見數字是1  文件的每一個字段要用一個字節來記錄 文件的權限類型 一個字節 文件的權限第二個字節 。 安全上下文第3個字節  數字第4個字節 用戶組第5 6字節 大小第7個字節 最後一次被更改的時間第八個字節 文件名稱第九個字節  所有這個文件的屬性喲共有九個 除去名稱有8個 每個屬性用一個字節來記錄文件的名字十幾個字節就是幾個字節


按道理來說應該是28+8=36個字節  本來加上安全上下文應該是37個字節 但是之前關閉拉selinux 所以少了一個字節

 再次touch11 發現數字變成拉 所以45並不表示目錄本身 的大小 而表示這個目錄當中記錄的文件或者目錄屬性的大小  

時間表示 文目錄當中的文件或目錄當中的子目錄被修改過屬性或被新建的時候會更改 例如我們把目錄刪掉看時間同步到了目前的時間

最後一位就表示目錄的名字

對於屬性個字段的理解
對於文件屬性字段的理解                 對於目錄屬性字段的理解
1 類型                               1 類型
2 文件權限                            2 目錄權限
3 selinux context                   3 selinux context 
4 文件硬鏈接個數                       4 目錄中的子目錄個數
5 文件擁有者                          5 目錄擁有者
6 文件擁有組                          6 目錄擁有組
7 文件大小                            7 目錄中子文件或子目錄原數據的大小
8 文件最後一次被修改的時間               8 目錄中的內容最後一次被修改的時間
9 文件名稱                            9 目錄名稱

 


 

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