溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么在Linux系統(tǒng)中防止文件和目錄被意外的刪除或修改

發(fā)布時(shí)間:2021-10-23 10:37:46 來源:億速云 閱讀:169 作者:小新 欄目:系統(tǒng)運(yùn)維

這篇文章主要介紹了怎么在Linux系統(tǒng)中防止文件和目錄被意外的刪除或修改,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

Linux中防止文件和目錄被意外刪除和修改

默認(rèn),chattr 命令在大多數(shù)現(xiàn)代 Linux 操作系統(tǒng)中是可用的。

默認(rèn)語法是:

chattr [operator] [switch] [file]

chattr 具有如下操作符:

  • 操作符 +,追加指定屬性到文件已存在屬性中

  • 操作符 -,刪除指定屬性

  • 操作符 =,直接設(shè)置文件屬性為指定屬性

chattr 提供不同的屬性,也就是 aAcCdDeijsStTu。每個(gè)字符代表一個(gè)特定文件屬性。

  • a – 只能向文件中添加數(shù)據(jù)

  • A – 不更新文件或目錄的***訪問時(shí)間

  • c – 將文件或目錄壓縮后存放

  • C – 不適用寫入時(shí)復(fù)制機(jī)制(CoW)

  • d – 設(shè)定文件不能成為 dump 程序的備份目標(biāo)

  • D – 同步目錄更新

  • e – extend 格式存儲(chǔ)

  • i – 文件或目錄不可改變

  • j – 設(shè)定此參數(shù)使得當(dāng)通過 mount 參數(shù):data=ordered 或者 data=writeback 掛載的文件系統(tǒng),文件在寫入時(shí)會(huì)先被記錄在日志中

  • P – project 層次結(jié)構(gòu)

  • s – 安全刪除文件或目錄

  • S – 即時(shí)更新文件或目錄

  • t – 不進(jìn)行尾部合并

  • T – 頂層目錄層次結(jié)構(gòu)

  • u – 不可刪除

在本教程中,我們將討論兩個(gè)屬性的使用,即 a、i ,這個(gè)兩個(gè)屬性可以用于防止文件和目錄的被刪除。這是我們今天的主題,對(duì)吧?來開始吧!

防止文件被意外刪除和修改

我先在我的當(dāng)前目錄創(chuàng)建一個(gè)file.txt文件。

$ touch file.txt

現(xiàn)在,我將給文件應(yīng)用 i 屬性,讓文件不可改變。就是說你不能刪除或修改這個(gè)文件,就算你是文件的擁有者和 root 用戶也不行。

$ sudo chattr +i file.txt

使用lsattr命令檢查文件已有屬性:

$ lsattr file.txt

輸出:

----i---------e---- file.txt

現(xiàn)在,試著用普通用戶去刪除文件:

$ rm file.txt

輸出:

# 不能刪除文件,非法操作rm: cannot remove 'file.txt': Operation not permitted

我來試試 sudo 特權(quán):

$ sudo rm file.txt

輸出:

# 不能刪除文件,非法操作rm: cannot remove 'file.txt': Operation not permitted

我們?cè)囋囎芳訉憙?nèi)容到這個(gè)文本文件:

$ echo 'Hello World!' >> file.txt

輸出:

# 非法操作bash: file.txt: Operation not permitted

試試 sudo 特權(quán):

$ sudo echo 'Hello World!' >> file.txt

輸出:

# 非法操作bash: file.txt: Operation not permitted

你應(yīng)該注意到了,我們不能刪除或修改這個(gè)文件,甚至 root 用戶或者文件所有者也不行。

要撤銷屬性,使用 -i 即可。

$ sudo chattr -i file.txt

現(xiàn)在,這不可改變屬性已經(jīng)被刪除掉了。你現(xiàn)在可以刪除或修改這個(gè)文件了。

$ rm file.txt

類似的,你能夠限制目錄被意外刪除或修改,如下一節(jié)所述。

防止目錄被意外刪除和修改

創(chuàng)建一個(gè) dir1 目錄,放入文件 file.txt

$ mkdir dir1 && touch dir1/file.txt

現(xiàn)在,讓目錄及其內(nèi)容(file.txt 文件)不可改變:

$ sudo chattr -R +i dir1

命令中,

  • -R – 遞歸使 dir1 目錄及其內(nèi)容不可修改

  • +i – 使目錄不可修改

現(xiàn)在,來試試刪除這個(gè)目錄,要么用普通用戶,要么用 sudo 特權(quán)。

$ rm -fr dir1$ sudo rm -fr dir1

你會(huì)看到如下輸出:

# 不可刪除'dir1/file.txt':非法操作rm: cannot remove 'dir1/file.txt': Operation not permitted

嘗試用 echo 命令追加內(nèi)容到文件,你成功了嗎?當(dāng)然,你做不到。

撤銷此屬性,輸入:

$ sudo chattr -R -i dir1

現(xiàn)在你就能想平常一樣刪除或修改這個(gè)目錄內(nèi)容了。

防止文件和目錄被意外刪除,但允許追加操作

我們現(xiàn)已知道如何防止文件和目錄被意外刪除和修改了。接下來,我們將防止文件被刪除但僅僅允許文件被追加內(nèi)容。意思是你不可以編輯修改文件已存在的數(shù)據(jù),或者重命名這個(gè)文件或者刪除這個(gè)文件,你僅可以使用追加模式打開這個(gè)文件。

為了設(shè)置追加屬性到文件或目錄,我們像下面這么操作:

針對(duì)文件:

$ sudo chattr +a file.txt

針對(duì)目錄:

$ sudo chattr -R +a dir1

一個(gè)文件或目錄被設(shè)置了 a 這個(gè)屬性就僅僅能夠以追加模式打開進(jìn)行寫入。

添加些內(nèi)容到這個(gè)文件以測(cè)試是否有效果。

$ echo 'Hello World!' >> file.txt$ echo 'Hello World!' >> dir1/file.txt

查看文件內(nèi)容使用cat命令

$ cat file.txt$ cat dir1/file.txt

輸出:

Hello World!

你將看到你現(xiàn)在可以追加內(nèi)容。就表示我們可以修改這個(gè)文件或目錄。

現(xiàn)在讓我們?cè)囋噭h除這個(gè)文件或目錄。

$ rm file.txt

輸出:

# 不能刪除文件'file.txt':非法操作rm: cannot remove 'file.txt': Operation not permitted

讓我們?cè)囋噭h除這個(gè)目錄:

$ rm -fr dir1/

輸出:

# 不能刪除文件'dir1/file.txt':非法操作rm: cannot remove 'dir1/file.txt': Operation not permitted

刪除這個(gè)屬性,執(zhí)行下面這個(gè)命令:

針對(duì)文件:

$ sudo chattr -R -a file.txt

針對(duì)目錄:

$ sudo chattr -R -a dir1/

現(xiàn)在,你可以想平常一樣刪除或修改這個(gè)文件和目錄了。

更多詳情,查看 man 頁面。

man chattr

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“怎么在Linux系統(tǒng)中防止文件和目錄被意外的刪除或修改”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI