为了允许添加数据,防止更改或者删除等,文件和文件夹可以设定了特定的控制属性。例如,你可以在关键的系统文件或者文件夹中启用属性,然后没有任何 用户,包括root,可以删除或者修改它,比如不允许使用像dump这样的命令等备份工具去备份一个特定的文件或者文件夹,等等。这些属性只可以在 ext2,ext3或者ext4文件系统中的文件和文件夹上设定。
有两个命令 lsattr 和 chattr 用来管理属性。下面是常用属性的列表。
chattr属性中可以使用的不同选项 :
在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 例 :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://linuxeye.com/Linux/2607.html |