linux 改变文件夹属性,技术|在Linux中用chattr和lsattr命令管理文件和目录属性
為了允許添加數(shù)據(jù),防止更改或者刪除等,文件和文件夾可以設(shè)定了特定的控制屬性。例如,你可以在關(guān)鍵的系統(tǒng)文件或者文件夾中啟用屬性,然后沒有任何用戶,包括root,可以刪除或者修改它,比如不允許使用像dump這樣的命令等備份工具去備份一個特定的文件或者文件夾,等等。這些屬性只可以在ext2,ext3或者ext4文件系統(tǒng)中的文件和文件夾上設(shè)定。
有兩個命令 lsattr 和 chattr 用來管理屬性。下面是常用屬性的列表。
屬性
描述
a (append)
允許在文件中進(jìn)行追加操作
A
這個屬性不允許更新文件的訪問時間
c (compressed)
啟用這個屬性時,文件在磁盤上會自動壓縮
d (dump)
不能使用dump命令備份文件
D
設(shè)置了文件夾的D屬性時,更改會在同步保存在磁盤上
e (extent format)
它表明,該文件使用磁盤上的塊的映射擴(kuò)展
i (immutable)
在文件上啟用這個屬性時,我們不能更改、重命名或者刪除這個文件
j (journaling)
設(shè)置了這個屬性時,文件的數(shù)據(jù)首先保存在日志中,然后再寫入文件
S (synchronous)
設(shè)置了這個屬性時,變更或更改同步保存到磁盤上
chattr屬性中可以使用的不同選項 :
-R 遞歸地修改文件夾和子文件夾的屬性
-V chattr命令會輸出帶有版本信息的冗余信息
-f 忽略大部分錯誤信息
在chattr中用于設(shè)置或者取消屬性的 操作符
'+' 符號用來為文件和文件夾設(shè)置屬性,
'-' 符號用來移除或者取消屬性
'=' 使它們成為文件有的唯一屬性。
chattr 和 lsattr 命令的基本語法 :
# chattr
# lsattr
例:1 使用‘i’屬性使文件不可更改
[root@linuxtechi ~]# chattr +i dummy_data
[root@linuxtechi ~]# lsattr dummy_data
----i----------- dummy_data
現(xiàn)在試著刪除或者修改文件
[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
現(xiàn)在試著把fstab文件的內(nèi)容追加到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文件夾遞歸設(shè)置不可更改屬性
[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 ~]#
現(xiàn)在試著用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
本文由 LCTT 原創(chuàng)翻譯,Linux中國 榮譽(yù)推出
總結(jié)
以上是生活随笔為你收集整理的linux 改变文件夹属性,技术|在Linux中用chattr和lsattr命令管理文件和目录属性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 查看 rabbitmq 启动websoc
- 下一篇: datatable怎么根据两列分组_公司