歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 在Linux中用chattr和lsattr命令管理文件和目錄屬性

在Linux中用chattr和lsattr命令管理文件和目錄屬性

日期:2017/2/27 15:48:53   编辑:Linux教程

為了允許添加數據,防止更改或者刪除等,文件和文件夾可以設定了特定的控制屬性。例如,你可以在關鍵的系統文件或者文件夾中啟用屬性,然後沒有任何 用戶,包括root,可以刪除或者修改它,比如不允許使用像dump這樣的命令等備份工具去備份一個特定的文件或者文件夾,等等。這些屬性只可以在 ext2,ext3或者ext4文件系統中的文件和文件夾上設定。

有兩個命令 lsattrchattr 用來管理屬性。下面是常用屬性的列表。

屬性

描述

a (append)

允許在文件中進行追加操作

A

這個屬性不允許更新文件的訪問時間

c (compressed)

啟用這個屬性時,文件在磁盤上會自動壓縮

d (dump)

不能使用dump命令備份文件

D

設置了文件夾的D屬性時,更改會在同步保存在磁盤上

e (extent format)

它表明,該文件使用磁盤上的塊的映射擴展

i (immutable)

在文件上啟用這個屬性時,我們不能更改、重命名或者刪除這個文件

j (journaling)

設置了這個屬性時,文件的數據首先保存在日志中,然後再寫入文件

S (synchronous)

設置了這個屬性時,變更或更改同步保存到磁盤上

chattr屬性中可以使用的不同選項 :

  • -R 遞歸地修改文件夾和子文件夾的屬性
  • -V chattr命令會輸出帶有版本信息的冗余信息
  • -f 忽略大部分錯誤信息

在chattr中用於設置或者取消屬性的 操作符

  • '+' 符號用來為文件和文件夾設置屬性,
  • '-' 符號用來移除或者取消屬性
  • '=' 使它們成為文件有的唯一屬性。

chattrlsattr 命令的基本語法 :

# chattr <options> <attributes> <file or Directory >
# lsattr <File or Directory>

例:1 使用‘i’屬性使文件不可更改

[root@linuxtechi ~]# chattr +i dummy_data
[root@linuxtechi ~]# lsattr dummy_data
----i----------- dummy_data

現在試著刪除或者修改文件

[root@linuxtechi ~]# rm -f dummy_data
rm: cannot remove 'dummy_data': Operation not permitted

[root@linuxtechi ~]# echo "test" >> dummy_data
-bash: dummy_data: Permission denied

例:2 移除不可更改屬性

[root@linuxtechi ~]# chattr -i dummy_data
[root@linuxtechi ~]# lsattr dummy_data
---------------- dummy_data

例:3 在文件中只允許追加操作

[root@linuxtechi ~]# chattr +a dummy_data
[root@linuxtechi ~]# lsattr dummy_data
-----a---------- dummy_data

現在試著把fstab文件的內容追加到dummy_data文件

[root@linuxtechi ~]# cat /etc/fstab >> dummy_data

例 :4 使用 -R 選項和 ‘+i’ 屬性使文件夾和它的子文件夾成為安全目錄

讓我們來新建一個sysadmin文件夾和它的子文件夾

[root@linuxtechi ~]# mkdir sysadmin
[root@linuxtechi ~]# mkdir sysadmin/admim_{1,2,3,4,5}
[root@linuxtechi ~]# ls -l sysadmin/
total 0
drwxr-xr-x. 2 root root 6 Apr 19 09:50 admim_1
drwxr-xr-x. 2 root root 6 Apr 19 09:50 admim_2
drwxr-xr-x. 2 root root 6 Apr 19 09:50 admim_3
drwxr-xr-x. 2 root root 6 Apr 19 09:50 admim_4
drwxr-xr-x. 2 root root 6 Apr 19 09:50 admim_5

在sysadmin文件夾遞歸設置不可更改屬性

[root@linuxtechi ~]# chattr -R +i sysadmin

[root@linuxtechi ~]# lsattr -R sysadmin/
----i----------- sysadmin/admim_1
sysadmin/admim_1:
----i----------- sysadmin/admim_2
sysadmin/admim_2:
----i----------- sysadmin/admim_3
sysadmin/admim_3:
----i----------- sysadmin/admim_4
sysadmin/admim_4:
----i----------- sysadmin/admim_5
sysadmin/admim_5:

現在試著用rm命令刪除文件夾

[root@linuxtechi ~]# rm -rf sysadmin
rm: cannot remove ‘sysadmin/admim_1’: Permission denied
rm: cannot remove ‘sysadmin/admim_2’: Permission denied
rm: cannot remove ‘sysadmin/admim_3’: Permission denied
rm: cannot remove ‘sysadmin/admim_4’: Permission denied
rm: cannot remove ‘sysadmin/admim_5’: Permission denied

使用以下命令遞歸取消屬性

[root@linuxtechi ~]# chattr -R -i sysadmin
譯文:https://linux.cn/article-5590-1.html
Copyright © Linux教程網 All Rights Reserved