除了我們上一節介紹的基本許可權之外,linux檔案還具備一些隱藏屬性。當你覺得當前檔案的許可權沒有問題但是檔案訪問依然異常的時候,就可以來查一下這個檔案的隱藏屬性。隱藏屬性對系統安全提供了一定程度的保障,今天給大家介紹如何修改和檢視檔案的隱藏屬性。
[root@localhost
~]# chattr [+-=][asacdistu]
檔案或目錄名稱
選項與引數:
+ :增加某乙個特殊引數,其他原本存在引數則不動。
- :移除某乙個特殊引數,其他原本存在引數則不動。
= :設定一定,且僅有後面接的引數
a :訪問此檔案(或目錄)時,他的訪問時間
atime
將不會被修改。
a :檔案將只能增加資料,而不能刪除也不能修改資料,只有
root
才能設定這屬性
c :自動的將此檔案「壓縮
」。在讀取的時候將會自動解壓縮,在儲存的時候,將會先進行壓縮後再儲存
d :當
dump
備份時忽略本檔案/目錄
i root
也不能),如果設定此屬性的是目錄,只能修改目錄內檔案的內容,而不能增刪檔案。只有
root
才能設定此屬性
s:檔案內容變更之後,立即同步到硬碟
s :刪除時用
0填充該檔案,無法恢復
u :如果該檔案被刪除時,其資料內容其實還存在磁碟中,方便日後恢復
對於ext
系列的文佳系統,支援上述所有選項,
xfs檔案系統則只支援
aadis
。(什麼是檔案系統我們以後會專門討論)
[root@localhost ~]# lsattr [-adr]舉例:建立檔案並設定檔案或目錄
選項與引數:
-a :將隱藏檔案的屬性也秀出來;
-d :如果接的是目錄,僅列出目錄本身的屬性而非目錄內的檔名;
-r :連同子目錄的資料也一並列出來
i屬性,發現
root
使用者也無法刪除該檔案:
[root@localhost ~]# touch testattr當我們建立乙個檔案的時候,檔案是會有乙個預設許可權的,那麼檔案的預設許可權是什麼呢?[root@localhost ~]# chattr +i testattr
[root@localhost ~]# lsattr testattr
----i----------- testattr
[root@localhost ~]# rm testattr
rm: remove regular empty file 『testattr』? y
rm: cannot remove 『testattr』: operation not permitted
[root@localhost ~]#
這取決於使用者的遮罩碼(
umask
)。使用
umask
命令可以檢視當前的遮罩碼
[root@localhost ~]# umask這是一串八進位制數,有些朋友可能會一頭霧水,使用者許可權如果用八進位制表示應該是三位呀,問什麼此處只有四位數字呢。0022
其實,umask
的正確使用姿勢是這樣的:
第一位數字是介紹特殊許可權的,是下一節的內容,我們先不看。這樣一來就只剩下三位,此處是
022,但是這不是使用者許可權的最終結果
對於非目錄檔案,用
666去減去
umask
,此處我們得到的是
644,也就是預設檔案許可權是
rw-r--r--
。此處要注意的是,如果減去的結果中有奇數(執行許可權),則該位加
1.比如,如果
umask
後三位是
023,666-023=643
,第三位出現了執行許可權,則這位數字加
1,最終許可權任然是
644。
對於目錄檔案,使用
777去減,如末三位為
022的
umask
,預設的目錄許可權是
755預設
root
使用者的umask
是0022
,普通使用者是
0002
可以通過
umask
數字來更改當前使用者的
umask
(一般提供後三位即可)
[root@localhost ~]# umask 023我們之前說過[root@localhost ~]# umask
0023
umask
第一位是描述特殊許可權的,那麼
Linux入門(三)檔案許可權
linux系統中的每個檔案和目錄都有訪問許可許可權,用它來確定使用者對檔案和目錄進行訪問和操作的許可權。檔案或目錄的訪問許可權分為唯讀r,只寫w和可執行x三種。有三種不同型別的使用者可對檔案或目錄進行訪問 檔案所有者,同組使用者 其他使用者。所有者一般是檔案的建立者。用ls l命令顯示檔案或目錄的周...
Linux入門篇(二) 檔案
這一系列的linux入門都是本人在 鳥哥的linux私房菜 的基礎上總結的基本內容,主要是記錄下自己的學習過程,也方便大家簡要的了解 linux distribution是ubuntu而不是書本上推薦的centos,建議裝雙系統,不要使用虛擬機器。在github上 linuxpractice 其他內...
Linux快速入門(2) 》檔案的打包壓縮
與我們平時所說的打包不一樣。我們平時說的打包是打包後壓縮。而在linux下,打包的意思是指只打包不進行檔案壓縮。壓縮的意思是把檔案進行壓縮。tar命令,檔案的打包,解包 只是單純的打包,並不做壓縮,相當於把檔案歸檔,歸檔檔案釋放。打包 tar cvf filename.tar dirname解包 t...