Linux下防止文件误删方法
轉(zhuǎn)載:http://coolsky.blog.51cto.com/177347/1230332
?
Linux系統(tǒng)中,在root帳號下使用rm * -rf是非常危險的,一不小心就可能刪除系統(tǒng)中的重要文件。
通常運維工程師或者系統(tǒng)工程師會用一些特殊的方法,來防止誤刪除系統(tǒng)文件和重要的配置文件,比較常用的方法是chattr +i filename
我的用法:
我想把一個文件夾變成這中屬性,但是可以在這個文件夾下面創(chuàng)建和刪除文件,使用注意:
先創(chuàng)建一個空的目錄,然后將該目錄的屬性設(shè)置為+i,然后通過掛載的方式將一個虛擬硬盤或者其他可以掛載的目錄掛載到這個空的目錄下面,就可以實現(xiàn)目的了。
?
通常我問查看一個文件的屬性是這樣的
[root@localhost Desktop]# ls -ltr
total 8
-rwxr--r--. 1 root root 157 Jun 26 10:53 test.sh
-rwxr--r--. 1 root root ?79 Jun 26 10:55 test1.sh
使用lsattr看到的擴(kuò)展屬性是這樣的
[root@localhost Desktop]# lsattr
-------------e- ./test.sh
-------------e- ./test1.sh
lsattr是查看文件和文件夾的擴(kuò)展屬性,與之對應(yīng)的命令是chattr修改文件愛你的擴(kuò)展屬性
chattr命令的作用很大,其中一些功能是由Linux內(nèi)核版本來支持的,如果Linux內(nèi)核版本低于2.2,那么許多
功能不能實現(xiàn)。同樣-D檢查壓縮文件中的錯誤的功能,需要2.5.19以上內(nèi)核才能支持。另外,通過chattr命令
修改屬性能夠提高系統(tǒng)的安全 性,但是它并不適合所有的目錄。chattr命令不能保護(hù)/、/dev、/tmp、/var
目錄。lsattr比較簡單,只是顯示文件的屬性
這兩個命令是用來改變文件、目錄屬性的,和chmod,ls這些命令相比,chmod只是改變文件的讀寫、執(zhí)行權(quán)限,
更底層的屬性控制是由chattr來改變的。
RV ] [ -v version ] [ mode ] files...
最關(guān)鍵的是在[mode]部分,[mode]
chattr命令的用法:chattr [
-部分是由+-=和[ASacDdIijsTtu]這些字符組合的,這部分是用來控制文件的
屬性。
? +:在原有參數(shù)設(shè)定基礎(chǔ)上,追加參數(shù)。
? -:在原有參數(shù)設(shè)定基礎(chǔ)上,移除參數(shù)。
=:更新為指定參數(shù)設(shè)定。
A:文件或目錄的atime (access time)不可被修改(modified),可以有效預(yù)防例如手提電腦磁盤I/O錯誤的發(fā)生。
S:硬盤I/O同步選項,功能類似sync。
a:即append,設(shè)定該參數(shù)后,只能向文件中添加數(shù)據(jù),而不能刪除,多用于服務(wù)器日志文 件安全,只有root才能設(shè)定這個屬性。
c:即compresse,設(shè)定文件是否經(jīng)壓縮后再存儲。讀取時需要經(jīng)過自動解壓操作。
d:即no dump,設(shè)定文件不能成為dump程序的備份目標(biāo)。
i:設(shè)定文件不能被刪除、改名、設(shè)定鏈接關(guān)系,同時不能寫入或新增內(nèi)容。i參數(shù)對于文件 系統(tǒng)的安全設(shè)置有很大幫助。
j:即journal,設(shè)定此參數(shù)使得當(dāng)通過mount參數(shù):data=ordered或者data=writeback掛
載的文件系統(tǒng),文件在寫入時會先被記錄(在journal中)。如果filesystem被設(shè)定參數(shù)為data=journal,則該參數(shù)自動失效。
s:保密性地刪除文件或目錄,即硬盤空間被全部收回。
u:與s相反,當(dāng)設(shè)定為u時,數(shù)據(jù)內(nèi)容其實還存在磁盤中,可以用于undeletion.
各參數(shù)選項中常用到的是a和i。a選項強(qiáng)制只可添加不可刪除,多用于日志系統(tǒng)的安全設(shè)定。而i是更為嚴(yán)格的安全設(shè)定,只有superuser (root)或具有CAP_LINUX_IMMUTABLE處理能力(標(biāo)識)的進(jìn)程能夠施加該選項。
應(yīng)用實例一:
1.使用chattr命令防止某個文件被刪除
[root@localhost Desktop]# lsattr
-------------e- ./test.sh
-------------e- ./test1.sh
[root@localhost Desktop]# chattr +i *
[root@localhost Desktop]# lsattr
----i--------e- ./test.sh
----i--------e- ./test1.sh
[root@localhost Desktop]# rm * -rf
rm: cannot remove `test1.sh': Operation not permitted
rm: cannot remove `test.sh': Operation not permitted
[root@localhost Desktop]# ls
test1.sh ?test.sh
刪除文件提示操作不被允許,文件未被刪除
2.讓某個文件只能往里面追加內(nèi)容,不能刪除,一些日子文件適用于這種操作
[root@localhost Desktop]# chattr +a /var/log/messages
[root@localhost Desktop]# rm /var/log/messages
rm: remove regular file `/var/log/messages'? y
rm: cannot remove `/var/log/messages': Operation not permitted
[root@localhost Desktop]# echo helloo >> /var/log/messages
這樣message文件就只能追加,不能刪除或者清空操作。
轉(zhuǎn)載于:https://www.cnblogs.com/pengdonglin137/p/3710789.html
總結(jié)
以上是生活随笔為你收集整理的Linux下防止文件误删方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何检测远程主机上的某个端口是否开启
- 下一篇: HDU 3507 Print Artic