国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

在Linux下創建寫保護的文件的教程

2020-06-13 11:25:34
字體:
來源:轉載
供稿:網友

假如你想對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
    

 

Linux,文件   

如果你想讓一個目錄(比如/etc)連同它下邊的所有內容不可變更,使用“-R”選項:

   

復制代碼
代碼如下:
$ sudo chattr -R +i /etc

 

“只可追加”標志位

另一個有用的的標志位是“只可追加”,它只允許文件內容被追加的方式修改。你不能覆蓋或者刪除一個設置了“只可追加”標志位的文件。這個標志位在你想避免日志文件被意外清理掉的情況很有用。

和“不可變更”標志位類似,你可以使用如下命令讓文件變成“只可追加”模式:

   

復制代碼
代碼如下:
$ sudo chattr +a /var/log/syslog

 

注意當你復制一個“不可變更”或者“只可追加”的文件到其他地方后,新文件不會保留這些標志位!
結論

在這個教程中,我展示了如何使用chattr和lsattr命令來管理額外的文件標志位,來避免文件被篡改(意外或者其他情況)的方法。注意你不能將chattr作為一個安全措施,因為“不可變更”標志位可以很容易被取消掉。解決這個問題的一個可能的方式是限制chattr命令自身的可用性,或者去掉CAPLINUXIMMUTABLE內核權能標志。關于chattr以及可用的標志位的更多細節,請參考它的man手冊。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 淳化县| 马公市| 宣汉县| 南京市| 八宿县| 安阳市| 通州市| 咸阳市| 伊春市| 南丹县| 玉门市| 乌拉特前旗| 清徐县| 桂林市| 南充市| 丹东市| 山东省| 天津市| 灵武市| 芜湖县| 昭通市| 牡丹江市| 洛阳市| 祁连县| 饶河县| 来凤县| 德令哈市| 游戏| 伊宁市| 清远市| 远安县| 蓬莱市| 丹东市| 屯留县| 合水县| 通州市| 满洲里市| 巴林左旗| 江油市| 自治县| 启东市|