歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux管理 >> Linux維護 >> Linux系統怎麼建立一個不可變更文件

Linux系統怎麼建立一個不可變更文件

日期:2017/3/2 10:27:43   编辑:Linux維護

電腦上有時候會存放一些重要文件,用戶不希望這些文件被系統或者是其他人隨意更改。給這個文件設置讀寫權限是保護文件安全的一個方法,但是這個方法不夠到位。可以把文件創建為不可更改文件,這樣就可以確保文件的安全。那麼Linux系統應該怎麼樣創建不可更改文件呢?

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創建不可變更文件的方法就是這些了,但是不可變更也不是絕對安全的,因為文件的不可變更狀態也是可以被更改的。

Copyright © Linux教程網 All Rights Reserved