UDN-企业互联网技术人气社区

板块导航

浏览  : 1130
回复  : 0

[运维] 在Linux中用chattr和lsattr命令管理文件和目录属性

[复制链接]
哥屋恩的头像 楼主
发表于 2016-10-23 19:17:53 | 显示全部楼层 |阅读模式
  为了允许添加数据,防止更改或者删除等,文件和文件夹可以设定了特定的控制属性。例如,你可以在关键的系统文件或者文件夹中启用属性,然后没有任何用户,包括root,可以删除或者修改它,比如不允许使用像dump这样的命令等备份工具去备份一个特定的文件或者文件夹,等等。这些属性只可以在ext2,ext3或者ext4文件系统中的文件和文件夹上设定。

h.jpg


  有两个命令 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 命令的基本语法 :

  1. # chattr <options> <attributes> <file or Directory >
  2. # lsattr <File or Directory>
复制代码


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

  1.   [root@linuxtechi ~]# chattr +i dummy_data

  2.   [root@linuxtechi ~]# lsattr dummy_data

  3.   ----i----------- dummy_data
复制代码


  现在试着删除或者修改文件

  1.   [root@linuxtechi ~]# rm -f dummy_data

  2.   rm: cannot remove 'dummy_data': Operation not permitted

  3.   [root@linuxtechi ~]# echo "test" >> dummy_data

  4.   -bash: dummy_data: Permission denied
复制代码


  例:2 移除不可更改属性

  1.   [root@linuxtechi ~]# chattr -i dummy_data

  2.   [root@linuxtechi ~]# lsattr dummy_data

  3.   ---------------- dummy_data
复制代码


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

  1.   [root@linuxtechi ~]# chattr +a dummy_data

  2.   [root@linuxtechi ~]# lsattr dummy_data

  3.   -----a---------- dummy_data
复制代码


  现在试着把fstab文件的内容追加到dummy_data文件

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

  2.   [root@linuxtechi ~]#
复制代码


  例 :4 使用 -R 选项和 ‘+i’ 属性使文件夹和它的子文件夹成为安全目录

  让我们来新建一个sysadmin文件夹和它的子文件夹

  1.   [root@linuxtechi ~]# mkdir sysadmin

  2.   [root@linuxtechi ~]# mkdir sysadmin/admim_{1,2,3,4,5}

  3.   [root@linuxtechi ~]# ls -l sysadmin/

  4.   total 0

  5.   drwxr-xr-x. 2 root root 6 Apr 19 09:50 admim_1

  6.   drwxr-xr-x. 2 root root 6 Apr 19 09:50 admim_2

  7.   drwxr-xr-x. 2 root root 6 Apr 19 09:50 admim_3

  8.   drwxr-xr-x. 2 root root 6 Apr 19 09:50 admim_4

  9.   drwxr-xr-x. 2 root root 6 Apr 19 09:50 admim_5
复制代码


  在sysadmin文件夹递归设置不可更改属性

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

  2.   [root@linuxtechi ~]# lsattr -R sysadmin/

  3.   ----i----------- sysadmin/admim_1

  4.   sysadmin/admim_1:

  5.   ----i----------- sysadmin/admim_2

  6.   sysadmin/admim_2:

  7.   ----i----------- sysadmin/admim_3

  8.   sysadmin/admim_3:

  9.   ----i----------- sysadmin/admim_4

  10.   sysadmin/admim_4:

  11.   ----i----------- sysadmin/admim_5

  12.   sysadmin/admim_5:

  13.   [root@linuxtechi ~]#
复制代码


  现在试着用rm命令删除文件夹

  1.   [root@linuxtechi ~]# rm -rf sysadmin

  2.   rm: cannot remove ‘sysadmin/admim_1’: Permission denied

  3.   rm: cannot remove ‘sysadmin/admim_2’: Permission denied

  4.   rm: cannot remove ‘sysadmin/admim_3’: Permission denied

  5.   rm: cannot remove ‘sysadmin/admim_4’: Permission denied

  6.   rm: cannot remove ‘sysadmin/admim_5’: Permission denied

  7.   [root@linuxtechi ~]#
复制代码


  使用以下命令递归取消属性

 
  1.  [root@linuxtechi ~]# chattr -R -i sysadmin
复制代码


原文作者:佚名  来源:开发者头条

相关帖子

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部