linux下的文件屬性和文件權限

linux系統下,一切都是文件,不管是硬件設備接口還是磁盤,都是有一個個的文件組成,稱爲包。在此,linux下磁盤分區是很重要的,可以看我之前寫的關於linux分區。現在我們來看看文件的權限和屬性,在linux王國下,文件就像是linux國王的各個大臣,有什麼權限,去幹什麼,能做什麼不能做什麼。就像財政大臣管理財務,叫他去做其他的就越權了。



如果你在終端 ls -l查看文件時,會出現如上圖所示:

1. 文件種類:

[d] :代表的是一個目錄

[-]:代表的是一個文件

[l]:代表的是連接文件(linkfile),如:lrwxrwxrwx  1 root root      23 9月   5 15:42 vtrgb -> /etc/alternatives/vtrgb,vtrgb就是連接文件,指向後面的源文件。

[b]:表示塊(block)設備文件裏面的可供存儲的接口設備

[c]:表示字符(charactor)設備文件裏面的串行端口設備,例如鼠標鍵盤等一次性讀取連續的設備

[s]:數據接口文件,用在網絡socket連接上

[p]:管道文件(FIFO pipe)解決多個程序同時訪問一個文件所造成的錯誤問題,


2. 文件權限:

在文件權限裏,存在三個重要的權限。第一,文件擁有者的權限;第二,同用戶組的權限;第三,其他非同用戶組的用戶權限,

他們擁有的對文件的權限是讀r(Read),寫w(Write),執行x(eXecute)三種方式,在上面圖片中,我們可以看到:rw-rw-rw-的文件權限,可以理解爲:

前三個 rw- 是擁有者的權限:可讀,可寫,不可執行(因爲它是一個空文件,沒有任何的格式,所以沒有任何的執行可言)

中間三個 rw- 是用戶組的權限:可讀,可寫,不可執行

後面三個 rw- 其他用戶的權限:可讀,可寫,不可執行

我們在新建文件的時候,系統會默認定義我們的文件屬性。如果你和你同事是在同一個開發組,現在你新建的文件想讓他也有duxie執行的權限,那該怎麼辦呢?很簡單,通過更改文件屬性與權限,如下:

chmod :改變文件的權限

(一). 數據類型改變文件權限, 定義三個屬性的值:

r : 4

w : 2

x : 1

權限就是對應的值相加,如:

$ chmod 764 test3,得到:

-rwxrw-r-- 1 root  root   64 9月  13 21:13 test3

 (二). 符號類型改變文件的權限,定義用戶身份:

u:user用戶

g:group用戶組

o:others其他用戶

a:all代表以上三種

+:加入,如:$ chmod g+x test3

-:減去, $chmod g-x test3

=:直接設置權限, chmod u=rwx, g=rwx, o=rw test3


 修改完了文件權限和屬性。。。。額,順序是不是有點搞錯了,不是的。接下來我們來看看怎麼創建文件權限和屬性,你會發現很簡單的


3. 文件默認的權限:umask

你新建一個文件的時候,系統會默認文件的權限:

新建文件默認權限:-rw-rw-rw-,最大爲666,只有rw,沒有x執行

新建目錄默認權限:drwxrwxrwx, 最大爲777,滿權限

touch test6(創建一個文件)

-rw-rw-rw- 1 root root   0 9月  13 22:45 test6
mkdir test7(創建一個目錄)

drwxrwxrwx 2 root root 4096 9月  13 22:46 test7


如果你不滿意linux系統給你默認的這個權限,你可以自定義默認權限:umask

查看umask值:$ umask

自定義umask值:$ umask 022

$ touch test8

-rw-r--r-- 1 root root    0 9月  13 22:54 test8

022的意思是在默認權限下需要減去的權限,也就是(-rw-rw-rw-)-(- --- -w- -w-) = (-rw-r--r--)


現在夠煩了吧,這麼多的文件屬性和權限,應該夠了吧,哈哈哈,你想多了,linux國王后宮佳麗何止三千。

我們來看看貴妃娘娘,文件隱藏屬性:chattr和lsattr

4. chattr:設置文件的隱藏屬性

chattr [+-=] [ASacdistu] 文件或者路徑名稱

參數:

+:單單增加一個特殊參數,其他不變

-:刪除一個特殊參數

=:僅僅有後面的參數,其他參數刪除


A:保持訪問時間atime不變,可避免/O較慢的機器過度訪問磁盤

S:同步寫入文件,一般文件是異步寫入的

a:只能在文件後面增加數據,不能刪除或者修改(root或者sudo才能設置)

c:存儲時自動壓縮文件,讀取時自動解壓,對於大文件有用

d:當執行dump程序時,設置d可使文件或目錄不會被dump備份

i:不死金身,設置i可使文件不能被刪除,增加數據,修改數據等(root或sudo)

s:設置s,刪除文件時文件將從磁盤永久刪除

u:和s相反,可根據內容恢復文件


5. lsattr:顯示文件隱藏屬性

lsattr [-adR] 文件或目錄

參數:

-a:將隱藏文件的屬性也顯示出來

-d:如果接的是目錄,僅列出目錄本身的屬性

-R:連同子目錄的數據也一併列出


文件特殊權限:SUID, SGID, SBIT

好煩人,現在先不講,不爲別的,就因爲現在就夠煩的了。。。(和後面的知識有關係,先放一放,後面講到系統賬號和process時再講~~偷懶中。。因爲感冒了,就把權限和屬性趕緊補完,回去休息)




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