Linux下防止檔案誤刪方法

2022-05-02 10:27:11 字數 2807 閱讀 6560

**:

linux系統中,在root帳號下使用rm * -rf是非常危險的,一不小心就可能刪除系統中的重要檔案。

通常運維工程師或者系統工程師會用一些特殊的方法,來防止誤刪除系統檔案和重要的配置檔案,比較常用的方法是chattr +i filename

我的用法:

我想把乙個資料夾變成這中屬性,但是可以在這個資料夾下面建立和刪除檔案,使用注意:

先建立乙個空的目錄,然後將該目錄的屬性設定為+i,然後通過掛載的方式將乙個虛擬硬碟或者其他可以掛載的目錄掛載到這個空的目錄下面,就可以實現目的了。

通常我問檢視乙個檔案的屬性是這樣的

[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看到的擴充套件屬性是這樣的

[root@localhost desktop]# lsattr

-------------e- ./test.sh

-------------e- ./test1.sh

lsattr是檢視檔案和資料夾的擴充套件屬性,與之對應的命令是chattr修改檔案愛你的擴充套件屬性

chattr命令的作用很大,其中一些功能是由linux核心版本來支援的,如果linux核心版本低於2.2,那麼許多

功能不能實現。同樣-d檢查壓縮檔案中的錯誤的功能,需要2.5.19以上核心才能支援。另外,通過chattr命令

修改屬性能夠提高系統的安全 性,但是它並不適合所有的目錄。chattr命令不能保護/、/dev、/tmp、/var

目錄。lsattr比較簡單,只是顯示檔案的屬性

這兩個命令是用來改變檔案、目錄屬性的,和chmod,ls這些命令相比,chmod只是改變檔案的讀寫、執行許可權,

更底層的屬性控制是由chattr來改變的。

rv ] [ -v version ] [ mode ] files...

最關鍵的是在[mode]部分,[mode]

chattr命令的用法:chattr [

-部分是由+-=和[asacddiijsttu]這些字元組合的,這部分是用來控制檔案的

屬性。+:在原有引數設定基礎上,追加引數。

-:在原有引數設定基礎上,移除引數。

=:更新為指定引數設定。

a:檔案或目錄的atime (access time)不可被修改(modified),可以有效預防例如手提電腦磁碟i/o錯誤的發生。

s:硬碟i/o同步選項,功能類似sync。

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處理能力(標識)的程序能夠施加該選項。

應用例項一:

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.讓某個檔案只能往裡面追加內容,不能刪除,一些日子檔案適用於這種操作

[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檔案就只能追加,不能刪除或者清空操作。

linux下防止檔案誤刪除的工具

linux系統下是沒有 站的,刪除的檔案或者目錄預設是永遠也找不回來的,因此,我們需要自己建立乙個 站 來暫時存放刪除的檔案 編輯檔案 root hass 11 vim etc profile.d trash.sh bin bash movetotrash recoveryfile 建立目錄 mkd...

linux下修改rm命令防止誤刪除

前言 相信很多朋友都遇到過在linux下用rm命令誤刪除檔案的時候,此刻的心中彷彿有無數的羊駝在奔騰。那麼怎麼防止這種情況發生呢?當然是有方法的,我們可以寫乙個shell指令碼,改變一下rm命令的作用。第一步 先在home目錄下建立乙個叫username名字的目錄 當然名字可以自定義 具體命令為 s...

linux封裝rm rf指令,防止誤刪

對於乙個linux新手,敲錯指令是常有的事情,智者千慮必有一失,即使對於乙個老司機來說,也難免會有操作失誤的時候,而誤刪導致的後果往往是無法彌補的。與其在誤刪資料後懊悔,不如趁早尋求方法避免這種錯誤的發生。這裡採用alias對rm指令設定別名,使得執行rm指令的時候,實際上執行了mv指令而將需要刪除...