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時再講~~偷懶中。。因爲感冒了,就把權限和屬性趕緊補完,回去休息)