您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么在Linux下創建寫保護的文件”,在日常操作中,相信很多人在怎么在Linux下創建寫保護的文件問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么在Linux下創建寫保護的文件”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
假如你想對Linux中的一些重要文件做寫保護,這樣它們就不能被刪除或者被篡改成之前的版本或者其他東西,或者在其他情況下,你可能想避免某些配置文件被軟件自動修改。使用chown和chmod命令修改文件的歸屬關系或者權限位是處理這種情況的一個解決方法,但這并不完美,因為這樣無法避免有root權限的操作。這時chattr就派上用場了。
chattr是一個可以設置或取消文件的標志位的Linux命令,它和標準的文件權限(讀、寫、執行)是分離的。與此相關的另一個命令是lsattr,它可以顯示文件的哪些標志位被設置上了。最初只有EXT文件系統(EXT2/3/4)支持chattr和lsattr所管理的標志位,但現在很多其他的原生的Linux文件系統都支持了,比如XFS、Btrfs、ReiserFS等等。
在這個教程中,我會示范如果使用chattr來讓Linux中的文件不可變更。
chattr和lsattr命令是e2fsprogs包的一部分,它在所有現代Linux發行版都預裝了。
下面是chattr的基本語法。
$ chattr [-RVf] [操作符][標志位] 文件...
其中操作符可以是“+”(把選定的標志位添加到標志位列表)、“-”(從標志位列表中移除選定的標志位)、或者“=”(強制使用選定的標志位)。
下面是一些可用的標志位。
a: 只能以追加模式打開。
A: 不能更新atime(文件訪問時間)。
c: 當被寫入磁盤時被自動壓縮。
C: 關掉“寫時復制”。
i: 不可變更。
s: 通過自動歸零來安全刪除。(LCTT 譯注:一般情況文件被刪后內容不會被修改,改標志位會使得文件被刪后原有內容被“0”取代)
“不可變更”標志位
為了讓一個文件不可變更,你需要按照如下方法為這個文件添加“不可變更”標志位。例如,對/etc/passwd文件做寫保護:
代碼如下:
$ sudo chattr +i /etc/passwd
注意設置或取消一個文件的“不可變更”標志位是需要root用戶權限的。現在檢查該文件“不可變更”標志位是否被添加上了。
代碼如下:
$ lsattr /etc/passwd
一旦文件被設置為不可變更,任何用戶都將無法修改該文件。即使是root用戶也不可以修改、刪除、覆蓋、移動或者重命名這個文件。如果你想再次修改這個文件,需要先把“不可變更”標志位取消了。
用如下命令取消“不可變更”標志位:
代碼如下:
$ sudo chattr -i /etc/passwd
如果你想讓一個目錄(比如/etc)連同它下邊的所有內容不可變更,使用“-R”選項:
代碼如下:
$ sudo chattr -R +i /etc
“只可追加”標志位
另一個有用的的標志位是“只可追加”,它只允許文件內容被追加的方式修改。你不能覆蓋或者刪除一個設置了“只可追加”標志位的文件。這個標志位在你想避免日志文件被意外清理掉的情況很有用。
和“不可變更”標志位類似,你可以使用如下命令讓文件變成“只可追加”模式:
代碼如下:
$ sudo chattr +a /var/log/syslog
注意當你復制一個“不可變更”或者“只可追加”的文件到其他地方后,新文件不會保留這些標志位!
到此,關于“怎么在Linux下創建寫保護的文件”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。