『學了就忘』Linux權限管理 — 56、不可改變位權限(chattr)


文件系統屬性chattr權限,也叫不可改變位權限,該權限沒有風險,但是他能限制root用戶。

1、命令格式

[root@localhost ~]# chattr [+-=] [選項] 文件或目錄名

選項

  • +:增加權限。
  • -:刪除權限。
  • =:等於某權限。(不常用)
  • i:如果對文件設置i屬性,那么不允許對文件進行刪除、改名,也不能添加和修改數據(也就是文件不能做任何修改,相當於把文件加了一把鎖,包括root在內都不行。);如果對目錄設置i屬性,那么只能修改目錄下文件的數據,但不允許建立和刪除文件。
  • a:如果對文件設置a屬性,那么只能在文件中增加數據,但是不能刪除也不能修改數據;如果對目錄設置a屬性,那么只允許在目錄中建立和修改文件,但是不允許刪除。
  • e:Linux中絕大多數的文件都默認擁有e屬性。表示該文件是使用ext文件系統進行字儲的,而且不能使用chattr -e命令取消e屬性。

提示:常用的就是ia屬性。

2、查看文件系統屬性chattr權限

# 給abc文件加入i屬性
[root@localhost ~]# chattr +i abc

# ll命令是查看不到任何結果的,這點比較不好。
[root@localhost ~]# ll abc
rw-r--r-.1 root root 0 2月 19 13:08 abc

如果需要查看chattr權限,需要用如下命令:

[rootelocalhost ~]# chattr [選項] 文件名

選項:

  • -a:顯示所有文件和目錄。
  • -d:若目標是目錄,僅列出目錄本身的屬性,而不是子文件的。
[root@localhost ~]# chattr abc
----i--------e- abc

注意:帶~表示臨時文件,和Windows系統的word的臨時文件差不多一個意思。直接rm刪除就可以了。

如下圖所示:

image

3、示例

例1:給文件賦予chattr權限的i屬性。

# 建立測試文件,給文件賦予i屬性
[root@localhost ~]# touch ftest
[root@localhost ~]# chattr +i ftest

# 賦予i屬性后,root也不能刪除
[root@localhost ~]# rm -rf ftest 
rm:無法刪除"ftest":不允許的操作

# 也不能修改文件的數據
[root@localhost ~]# echo 111 >> ftest
-bash:ftest:權限不夠

例2:給目錄賦予chattr權限的i屬性。

# 建立測試目錄給
[root@localhost ~]# mkdir dtest
# 再建立一個測試文件abc
[root@localhost dtest]# touch dtest/abc
# 給目錄賦予i屬性
[root@localhost ~]# chattr +i dtest/

# dtest目錄不能新建文件
[root@localhost ~]# cd dtest/
[root@localhost dtest] # touch bcd
touch:無法創建"bcd":權限不夠

# 但是可以修改文件內容
[root@localhost dtest]# echo 1111 >> abc
[root@localhost dtest]# cat abc
1111

# 不能刪除目錄內文件
[root@localhost dtest]# rm -rf abc
rm:無法刪除"abc":權限不夠

例3:測試chattr權限的a屬性。

# 給abc文件賦予a屬性
[root@localhost ~]# chattr +a abc

# 向abc文件中追加內容
# 注意一定不能用vim編輯器,用vim編輯器編輯內容不能保存。
[root@localhost ~]# echo aaaaaaaaaaaaaaaaaaaaaa >> abc
[root@localhost ~]# cat abc
aaaaaaaaaaaaaaaaaaaaaa

# 可以復制文件和新建文件到指定目錄
[root@localhost ~]# cp /var/log/messages /back/log/

# 但是不允許刪除文件
[root@localhost ~]# rm -rf abc
rm:無法刪除"/back/1og/messages":不允許的操作


免責聲明!

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



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