为了允许添加数据,防止更改或者删除等,文件和文件夹可以设定了特定的控制属性。例如,你可以在关键的系统文件或者文件夹中启用属性,然后没有任何用户,包括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

# lsattr

例: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

本文由 LCTT 原创翻译,Linux中国 荣誉推出

linux 改变文件夹属性,技术|在Linux中用chattr和lsattr命令管理文件和目录属性相关推荐

  1. linux中lsattr命令,在Linux中用chattr和lsattr命令管理文件和目录属性

    为了允许添加数据,防止更改或者删除等,文件和文件夹可以设定了特定的控制属性.例如,你可以在关键的系统文件或者文件夹中启用属性,然后没有任何用户,包括root,可以删除或者修改它,比如不允许使用像dum ...

  2. linux 解压zip 空格,如何在linux系统下对文件夹名有空格的文件夹进行操作,linux空格...

    如何在linux系统下对文件夹名有空格的文件夹进行操作,linux空格 在Windows操作系统中可以轻易地创建\移动\删除文件夹名带有空格的文件夹, 而在linux则需要进行一些特殊的处理才能实现以 ...

  3. linux打开python文件夹_python 常用对linux系统文件及目录的操作

    目录 1.取得当前目录--os.getcwd() >>> import os >>> s=os.getcwd()#获得当前运行脚本所在目录 >>> ...

  4. linux修改文件夹的访问权限,linux setfacl chmod g+s 修改文件夹和文件的默认访问权限和所属组...

    linux setfacl chmod g+s 修改文件夹和文件的默认访问权限和所属组 我们在创建一个文件夹或者一个文件的时候,希望集成父文件夹的访问权限和组 修改默认访问权限 setfacl 以及 ...

  5. linux mysql 文件夹权限_找到linux文件夹

    FineReport关于Linux下字体乱码终极解决方案 1:在windows下找到系统使用到的字体,这里以楷体举例 •到c盘的windows文件夹的Fonts文件夹里面存放了windows中用到的所 ...

  6. 在linux上备份文件夹在哪里找,Linux 备份 文件夹的权限 然后在其他机器进行恢复...

    Study From https://www.cnblogs.com/chenshoubiao/p/4780987.html 用到的命令 getfacl 和 setfacl 备份 getfacl -R ...

  7. linux遍历文件夹下所有文件大小,Linux系统遍历文件夹 获取文件大小的操作(C语言实现)...

    /** linux 下遍历文件夹以及获取文件大小 */ #include #include #include #include /** 获取文件大小,但是文件大小不能超过2G ,该方法不推荐使用 */ ...

  8. mac同步linux文件夹在哪里设置,Linux和Mac上的一些特殊文件将不再同步

    近日有用户报告, Mac/Linux上创建的某些文件, 无法成功同步到Windows平台上. 我们对这个问题进行了修正.  这个修正可能会影响到Linux和Mac用户中的极少数, 大概为数百位用户. ...

  9. Linux批量复制文件夹里的文件到另一个文件夹(问题:linux sh: /bin/cp: Argument list too long )

    cp -Rf 原文件夹路径 目标文件夹路径 例子: cp -Rf /home/src/* /home/tar/ 原文件夹路径:/home/src/* (加上 * 表示 /home/src/下的所有文件 ...

最新文章

  1. springboot工程中使用spring.version导致无法启动
  2. html隐藏定位,html – 如何使绝对定位(溢出:隐藏)容器的绝对定位的子项显示在其父项区域之外?...
  3. 使用SCVMM2012从hyper-v 2.0平台往hyper-v 3.0平台迁移VM虚拟机的报错(2)
  4. 【渝粤教育】 广东开放大学 21秋期末考试物业经营管理实务10123k2
  5. Oracle DBA 经典面试题
  6. shell 实现txt转换成html
  7. 算法--帕斯卡三角(杨辉三角)JS写法
  8. 企业需要成熟的云安全进程
  9. element-ui select 获取焦点时,光标移到文字最后
  10. JavaScript的注意事项
  11. java zk_zk框架:zul文件,纯Java或混合更好的性能
  12. JSP面试题(重要)
  13. mysql导出txt数据_mysql导出和导入txt数据
  14. chmod 755 filename
  15. 如何理解凸优化中的共轭函数的定义?
  16. PNG免抠素材网,免费商用,设计师赶紧马住。
  17. Docker从入门到进阶之基础操作(3)—— 仓库(Repository)
  18. 【精选】一文搞懂css三大特性
  19. 某A的工口游戏创作者体验记(下)
  20. 阿里云服务器的主要用途

热门文章

  1. win7安装python
  2. Leetcode | Implement strStr()
  3. MongoDB中关于64位整型存储解决方案
  4. 应用层——使用 Socket 通信实现 FTP 客户端程序
  5. linux 网卡驱动安装
  6. iphone开发之私有库private frameworks
  7. 虚拟局域网(VLAN)的管理
  8. 安卓adapter适配器作用_自带安卓系统的便携屏,能玩出什么花样?
  9. jqgrid本地数据例子_办公系统私有云公有云和本地化部署,你选哪个?
  10. docker仓库搭建、加密、用户认证