在Linux中用chattr和lsattr命令管理檔案和目錄屬性
為了允許新增資料,防止更改或者刪除等,檔案和資料夾可以設定了特定的控制屬性。例如,你可以在關鍵的系統檔案或者資料夾中啟用屬性,然後沒有任何使用者,包括root,可以刪除或者修改它,比如不允許使用像dump這樣的命令等備份工具去備份一個特定的檔案或者資料夾,等等。這些屬性只可以在ext2,ext3或者ext4檔案系統中的檔案和資料夾上設定。
有兩個命令 lsattr 和 chattr 用來管理屬性。下面是常用屬性的列表。
屬性 |
描述 |
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中用於設定或者取消屬性的 操作符
- ‘+’ 符號用來為檔案和資料夾設定屬性,
- ‘-’ 符號用來移除或者取消屬性
- ‘=’ 使它們成為檔案有的唯一屬性。
chattr 和 lsattr 命令的基本語法 :
# 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 [root@linuxtechi ~]#
例 :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: [root@linuxtechi ~]#
現在試著用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 ~]#
使用以下命令遞迴取消屬性
[root@linuxtechi ~]# chattr -R -i sysadmin
相關文章
- chattr、lsattr linux的隱藏檔案屬性檢視的命令Linux
- linux命令 lsattr chattrLinux
- Linux的檔案屬性和目錄配置Linux
- adb命令管理Linux 檔案和目錄Linux
- 筆記:Linux命令(目錄和檔案管理)筆記Linux
- Linux檔案和目錄管理Linux
- linux基本命令之chattr與lsattrLinux
- Linux的chattr與lsattr命令詳解Linux
- Linux-chattr與lsattr命令詳解Linux
- redhat5 linux chattr控制檔案及目錄的一些特殊屬性RedhatLinux
- Linux檔案系統-目錄和檔案管理Linux
- Linux檔案及目錄的Suid/Guid和T屬性LinuxGUI
- linux檔案與目錄管理命令Linux
- linux rm 命令(刪除檔案和目錄)Linux
- 在 Linux 中如何歸檔檔案和目錄Linux
- linux學習(3)檔案和目錄管理Linux
- Linux檔案及目錄的Suid/Guid和T屬性(轉)LinuxGUI
- 快速上手Linux核心命令(三):檔案和目錄操作命令Linux
- Linux — 檔案、目錄管理Linux
- 與Linux檔案和目錄管理相關的一些重要命令Linux
- Linux 檔案與目錄管理常用命令 記錄Linux
- 目錄與檔案屬性:編寫ls
- Linux常見命令-目錄檔案命令Linux
- scp命令 用於Linux之間複製檔案和目錄Linux
- Linux檔案及目錄管理Linux
- Linux 檔案與目錄管理Linux
- 第二章 檔案和目錄操作命令
- Linux cp 命令的15個示例 - 建立檔案和目錄的副本Linux
- Linux用inotify監聽檔案和目錄Linux
- Linux檔案與目錄管理(2)Linux
- Linux 檔案與目錄管理(轉)Linux
- Linux日記Day3---Linux的檔案屬性與目錄配置Linux
- 在linux下顯示中文目錄和檔名Linux
- Linux rm(刪除檔案/目錄) 命令Linux
- linux目錄及檔案命令學習Linux
- linux查詢檔案或目錄命令Linux
- Linux去掉檔名的目錄和字尾命令basenameLinux
- ls命令 & 檔案屬性