centos找不到chattr命令_一个骚命令防止你的文件被误删除!
大家好,我是良許。
文件是我們在電腦里最珍貴的財富,我們經常工作了老半天,然后出來的成果就只是一個文件而已。特別是程序員,我們寫了半天的代碼,結果也就是一個個代碼文件而已。
但是,我們都有過這樣慘痛的經歷——工作了老半天,結果不小心把文件刪除了……
這時候,你的心情是怎樣的?痛苦?自責?無奈?
今天良許就給大家介紹一個命令,它將給你的重要文件加一把鎖,防止誤刪除或誤修改,為你的寶貝文件保駕護航!
chattr命令簡介
這里我們需要使用到一個命令是:chattr ,這個命令在大部分的 Linux 發行版里都有,所以對于它的安裝就不贅述了。它的基本用法如下:
$ chattr 操作符 屬性 文件名對于操作符,有以下三種:
- + :給文件增加屬性
- - :去除文件屬性
- = :設置文件的僅有屬性
注意,這里講的屬性不是文件對應的系統屬性,而是 chattr 給文件賦予的屬性。本文要講的屬性有以下兩個:
- a - 允許給文件追加內容
- i - 保護模式(不允許刪除或修改)
但是,它的屬性可以設置很多,有興趣的小伙伴可以去看下它的 man 手冊。
$ man chattr防止文件被誤刪除或修改
假如我們現在有個國寶級重要文件 file.txt ,現在我們使用 chattr 對它進行保護。在這里,我們給文件增加 +i 屬性:
$ sudo chattr +i file.txt然后,我們可以使用 lsattr 命令查看它的屬性。類似的輸出如下:
$ lsattr file.txt ----i---------e---- file.txt現在,我們來嘗試一下,手賤去刪除那個文件:
$ rm file.txt rm: cannot remove 'file.txt': Operation not permitted咦?不允許刪除?難道權限不夠?
那好,我 sudo 一下!
$ sudo rm file.txt rm: cannot remove 'file.txt': Operation not permitted我 X ,居然還是不能刪除?
我們再來試一下,修改文件的內容。
$ echo 'hello world!' >> file.txt bash: file.txt: Operation not permitted可以看出來,依然不能對文件進行修改了。
而且,即使你從 GUI 界面手動去刪除這個文件,也還是不能耐他幾何。
所以,可以看出來,現在這個文件得到了很好的保護,既不能被刪除(各種方法都不行),也不能被修改。
那我們要怎么去除這個保護呢?很簡單,只需加上 -i 這個選項。
$ sudo chattr -i file.txt現在,文件又恢復原樣了,我們想修改就修改,想刪除就刪除。
$ echo 'Hello World!' >> file.txt $ cat file.txt Hello World! $ rm file.txt防止文件夾被誤刪除或修改
上面講到的是保護文件,那么文件夾要如何保護呢?
其實也是一樣,使用 +i 這個選項。假如我們現在有個 dir1 目錄,里面有個 file.txt 文件。我們來對這個文件夾進行保護。
$ sudo chattr -R +i dir1在這里,我們使用 -R 選項表示可以遞歸作用到目錄里所有的文件(包括子目錄)。
現在,我們同樣測試一下是否可以被刪除或修改。
$ rm -rf dir1 $ sudo rm -rf dir1 rm: cannot remove 'dir1/file.txt': Operation not permitted $ echo 'hello world!' >> dir1/file.txt bash: file.txt: Operation not permitted所以與文件一樣,我們成功地對文件夾進行了保護。
防止文件/目錄被刪除,但允許追加內容
現在我們知道怎么防止文件/目錄被誤刪除或修改了,但是,假如我們不想要文件已有內容被修改,但允許別人在文件末尾追加內容,要怎么操作?
這時候我們就需要使用 +a 這個選項了。
對文件:
$ sudo chattr +a file.txt對目錄:
$ sudo chattr -R +a dir1現在,我們來確認一下,文件是否可以被追加內容。
$ echo 'Hello World!' >> file.txt $ echo 'Hello World!' >> dir1/file.txt我們再使用 cat 命令去查看一下內容:
$ cat file.txt Hello World! $ cat dir1/file.txt Hello World!可以看出來,文件都是可以被追加的。
但是,file.txt 還有 dir1/file.txt 依然不能被刪除。
如果你想去掉可追加的屬性,可以使用 -a 這個選項。
對文件:
$ sudo chattr -R -a file.txt對目錄:
$ sudo chattr -R -a dir1/最后,最近很多小伙伴找我要Linux學習路線圖,于是我根據自己的經驗,利用業余時間熬夜肝了一個月,整理了一份電子書。無論你是面試還是自我提升,相信都會對你有幫助!目錄如下:
免費送給大家,只求大家金指給我點個贊!
電子書 | Linux開發學習路線圖
也希望有小伙伴能加入我,把這份電子書做得更完美!
有收獲?希望老鐵們來個三連擊,給更多的人看到這篇文章
推薦閱讀:
- 干貨 | 程序員進階架構師必備資源免費送
- 神器 | 支持搜索的資源網站
總結
以上是生活随笔為你收集整理的centos找不到chattr命令_一个骚命令防止你的文件被误删除!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python上传文件到windows_p
- 下一篇: threadpooltaskexecut