用久了ubuntu的人,很多人會忽然出個提示:磁盤空間不足1G! 然後分析半天。。最近也碰到類似問題,記錄如下:
一:.xsession-errors.old
可以在終端看到主用戶目錄下有這麼一個隱藏文件,我看到的時候 大小有22G左右!網上查了,說這個文件是因為我們本機與server之間通信錯誤的記錄集合,會不斷的增加記錄。有人提議可以寫個腳本定期刪除這個文件,這樣太麻煩了,可以使用如下命令解決這一問題: rm .xsession-errors.old touch .xsession-errors.old sudo chattr +i .xsession-errors.old 刪除掉,然後再新建一個同名文件,修改此文件為不可寫入!
二:chattr命令學習
之前都沒怎麼用過這個chattr命令,後來才發現這個命令這麼有用!系統中有的時候即使使用root權限也無法修改某個文件,很有可能是被用chattr命令鎖定了,這個命令的一些功能是由linux內核提供支持。使用這個命令可以鎖死系統的一些特殊文件,提高安全性。 chattr命令不能保護/、/dev、/tmp、
ar目錄。lsattr命令是顯示屬性,chattr命令設置的文件屬性。
一般的操作基本都是 chmod chown 這個兩個命令來修改讀寫權限,擁有者,chattr算是更加底層的屬性控制命令了!
chattr命令的用法:chattr [ -RVf ] [ -v version ] [ mode ] files…
最關鍵的是在[mode]部分,[mode]部分是由+-=和[ASacDdIijsTtu]這些字符組合的,這部分是用來控制文件的屬性,如下:
+ :在原有參數設定基礎上,追加參數。
- :在原有參數設定基礎上,移除參數。
= :更新為指定參數設定。
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。
各參數選項中常用到的是a和i。a選項強制只可添加不可刪除,多用於日志系統的安全設定。而i是更為嚴格的安全設定,只有superuser (root) 或具有CAP_LINUX_IMMUTABLE處理能力(標識)的進程能夠施加該選項。
以上面的.xsession-errors.old為例:
sudo chattr +i .xsession-errors.old
然後lsattr:
jscese@jscese-H61M-S2P:~$ lsattr .xsession-errors.old
----i--------e-- .xsession-errors.old