Linux文件權限與屬性詳解 之 chattr & lsattr


Linux文件權限與屬性詳解 之 一般權限
Linux文件權限與屬性詳解 之 ACL
Linux文件權限與屬性詳解 之 SUID、SGID & SBIT
Linux文件權限與屬性詳解 之 chattr & lsattr
Linux文件權限與屬性詳解 之 su & sudo

前言

在Linux中,有一些系統文件,對系統的運行有着至關重要的作用,如/etc/fstab等,一般不允許修改,這個時候,我們可以賦予文件/目錄r--------的權限;然而,還有一個更為簡單有效的命令chattr可以實現該功能!

特殊權限

特殊權限的要求:

  • 所支持的文件系統包括:ext2ext3ext4xfs
  • 一般要求內核版本不低於2.2(查看版本的命令如下):

uname -a
lsb_release -a

  • 不能保護 / /tmp /dev /var目錄
  • chattr 只能由root用戶使用

chattr、lsattr

類似於chmod, chmod只是改變文件的讀寫、執行權限,更底層的屬性控制是由chattr來改變的.

1). chattr 語法:

chattr [ -RVf ] [ -v version ] [ mode ] files...

最關鍵的是在[mode]部分,[mode]部分是由+-=[ASacDdIijsTtu]這些字符組合的,這部分是用來控制文件的屬性。

  • + : 在原有參數設定基礎上,追加參數
  • - :在原有參數設定基礎上,移除參數
  • = :更新為指定參數設定
  • A :文件或目錄的 atime (access time)不可被修改(modified),可以有效預防例如手提電腦磁盤I/O錯誤的發生
  • a :即append,設定該參數后,只能向文件中添加數據,而不能刪除;
  • c :即compresse,設定文件是否經壓縮后再存儲。讀取時需要經過自動解壓操作。
  • i :設定文件不能被刪除、改名、設定鏈接關系,同時不能寫入或新增內容;對目錄
  • s :保密性地刪除文件或目錄,即硬盤空間被全部收回
  • u :與s相反,當設定為u時,數據內容其實還存在磁盤中,可以用於undeletion.

2). lsattr 語法:

lsattr [ -RVadv ] [ files...  ]

參數如下:

  • a : 列出目錄下的所有文件,包括隱藏文件
  • d : 查看本目錄自身的權限

3). 例程:

首先,我使用root身份新建一個文件:

[root@niesh test]# ll
總用量 0
-rw-rw-r--. 1 root niesh 0 7月  31 20:27 abc

然后,我給該文件增加 i 權限:

[root@niesh test]# chattr +i abc
[root@niesh test]# lsattr abc
----i----------- abc

然后,我嘗試增加內容、刪除文件和修改文件名:

[root@niesh test]# echo 1234 >> abc
bash: abc: 權限不夠
[root@niesh test]# rm -f abc
rm: 無法刪除"abc": 不允許的操作
[root@niesh test]# mv abc bcd
mv: 無法將"abc" 移動至"bcd": 不允許的操作

以上均失敗,由此驗證!

修改以上文件的權限為 a :

[root@niesh test]# chattr +a abc
[root@niesh test]# lsattr abc
-----a---------- abc

abc文件進行操作:

[root@niesh test]# echo 1111 >> abc
[root@niesh test]# cat abc
1111
[root@niesh test]# rm -f abc
rm: 無法刪除"abc": 不允許的操作
[root@niesh test]# mv abc bcd
mv: 無法將"abc" 移動至"bcd": 不允許的操作

由以上可以看出,只能增加文件內容,不能進行其他的操作!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM