转载:http://coolsky.blog.51cto.com/177347/1230332

Linux系统中,在root帐号下使用rm * -rf是非常危险的,一不小心就可能删除系统中的重要文件。

通常运维工程师或者系统工程师会用一些特殊的方法,来防止误删除系统文件和重要的配置文件,比较常用的方法是chattr +i filename

我的用法:

我想把一个文件夹变成这中属性,但是可以在这个文件夹下面创建和删除文件,使用注意:

先创建一个空的目录,然后将该目录的属性设置为+i,然后通过挂载的方式将一个虚拟硬盘或者其他可以挂载的目录挂载到这个空的目录下面,就可以实现目的了。

通常我问查看一个文件的属性是这样的

[root@localhost Desktop]# ls -ltr

total 8

-rwxr--r--. 1 root root 157 Jun 26 10:53 test.sh

-rwxr--r--. 1 root root  79 Jun 26 10:55 test1.sh

使用lsattr看到的扩展属性是这样的

[root@localhost Desktop]# lsattr

-------------e- ./test.sh

-------------e- ./test1.sh

lsattr是查看文件和文件夹的扩展属性,与之对应的命令是chattr修改文件爱你的扩展属性

chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,如果Linux内核版本低于2.2,那么许多

功能不能实现。同样-D检查压缩文件中的错误的功能,需要2.5.19以上内核才能支持。另外,通过chattr命令

修改属性能够提高系统的安全 性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var

目录。lsattr比较简单,只是显示文件的属性

这两个命令是用来改变文件、目录属性的,和chmod,ls这些命令相比,chmod只是改变文件的读写、执行权限,

更底层的属性控制是由chattr来改变的。

RV ] [ -v version ] [ mode ] files...

最关键的是在[mode]部分,[mode]

chattr命令的用法:chattr [
-部分是由+-=和[ASacDdIijsTtu]这些字符组合的,这部分是用来控制文件的

属性。

+:在原有参数设定基础上,追加参数。

-:在原有参数设定基础上,移除参数。

=:更新为指定参数设定。

A:文件或目录的atime (access time)不可被修改(modified),可以有效预防例如手提电脑磁盘I/O错误的发生。

S:硬盘I/O同步选项,功能类似sync。

a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文 件安全,只有root才能设定这个属性。

c:即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。

d:即no dump,设定文件不能成为dump程序的备份目标。

i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助。

j:即journal,设定此参数使得当通过mount参数:data=ordered或者data=writeback挂

载的文件系统,文件在写入时会先被记录(在journal中)。如果filesystem被设定参数为data=journal,则该参数自动失效。

s:保密性地删除文件或目录,即硬盘空间被全部收回。

u:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion.

各参数选项中常用到的是a和i。a选项强制只可添加不可删除,多用于日志系统的安全设定。而i是更为严格的安全设定,只有superuser (root)或具有CAP_LINUX_IMMUTABLE处理能力(标识)的进程能够施加该选项。

应用实例一:

1.使用chattr命令防止某个文件被删除

[root@localhost Desktop]# lsattr

-------------e- ./test.sh

-------------e- ./test1.sh

[root@localhost Desktop]# chattr +i *

[root@localhost Desktop]# lsattr

----i--------e- ./test.sh

----i--------e- ./test1.sh

[root@localhost Desktop]# rm * -rf

rm: cannot remove `test1.sh': Operation not permitted

rm: cannot remove `test.sh': Operation not permitted

[root@localhost Desktop]# ls

test1.sh  test.sh

删除文件提示操作不被允许,文件未被删除

2.让某个文件只能往里面追加内容,不能删除,一些日子文件适用于这种操作

[root@localhost Desktop]# chattr +a /var/log/messages

[root@localhost Desktop]# rm /var/log/messages

rm: remove regular file `/var/log/messages'? y

rm: cannot remove `/var/log/messages': Operation not permitted

[root@localhost Desktop]# echo helloo >> /var/log/messages

这样message文件就只能追加,不能删除或者清空操作。

转载于:https://www.cnblogs.com/pengdonglin137/p/3710789.html

Linux下防止文件误删方法相关推荐

  1. linux 下创建文件的方法

    linux  下创建文件的方法 touch  aaa.txt    创建一个叫aaa.txt的文件 echo   ""  >>  aaa.txt    创建一个叫aaa ...

  2. Linux下core文件调试方法收藏

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://littlewhitetwo.blogbus.com/logs/35544335.html 在程序不寻常退出时,内核会在 ...

  3. linux下分割文件的方法,关于linux系统下分割大文件的方法

    <关于linux系统下分割大文件的方法>由会员分享,可在线阅读,更多相关<关于linux系统下分割大文件的方法(4页珍藏版)>请在人人文库网上搜索. 1.关于 linux系统下 ...

  4. linux下分割文件的方法,linux系统下分割大文件的方法有哪些

    学习啦小编我在linux中分割大文件,比如一个5gb日志文件,需要把它分成多个小文件,分割后以利于普通的文本编辑器读取.有时,需要传输20gb的大文件到另一台服务器,也需要把它分割成多个文件,这样便于 ...

  5. Linux下core文件调试方法

    core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dump. (Linux中如果内存越界会收到SIG ...

  6. linux 查询替换文件内容吗,Linux 下查询文件的方法 替换文件内容

    在当前目录里查找所有名为以 php 开头的文件: find -name "php*" 在subdir 目录里查找所有的名为以 php 开头的文件: find subdir -nam ...

  7. linux 下删除文件的 操纵

    linux   下删除 文件的 方法::: 1-  remove remove(删除文件) 相关函数 link,rename,unlink 表头文件 #include<stdio.h> 定 ...

  8. Linux下常见文件解压方法及命令

    Linux下常见文件解压方法及命令时间:2007-01-08 18:34来源:CSDN作者:bitsCN编辑字体:[大 中 小]1.以.a为扩展名的文件: #tar xv file.a 2.以.z为扩 ...

  9. linux 下vim文件乱码 cat文件正常处理方法

    linux 下vim文件乱码 cat文件正常处理方法 服务器支持中文字符集,cat和其他查看文件命令现在正常,vim还是出现了中文乱码问题, 1.查看文件编码格式 vim 文件 :set fileen ...

最新文章

  1. python浪漫代码-python爱心表白 每天都是浪漫七夕!
  2. 多彩投网站动态爬取[python+selenium]
  3. python3.6.5怎么下载_windows下如何下载并安装Python 3.6.4 ?
  4. 新浪微博、腾讯微博、QQ空间、人人网、豆瓣 一键分享API
  5. “稳拿高薪”三个专业?实际市场竞争压力大,就业困难!
  6. linux+jmeter+python基础+抓包拦截
  7. SecureCRT 基本设置
  8. Spark灰度发布在十万级节点上的实践
  9. sqli-labs(24)
  10. kubernetes Ingress是什么
  11. Android-VR 支持流媒体
  12. vue获取子组件元素
  13. 征战FPGA之制作FLASH烧写用的bin文件
  14. php中vc14是什么意思,VC9、VC11、VC14、VC15是啥?
  15. 如何彻底卸载电脑中的垃圾软件
  16. 百度wz竞价推广关键词排名的影响因素大全
  17. 如何给计算机添加密码,怎么给电脑设置密码,手把手教你电脑怎么设置密码
  18. 免费的文字转语音的软件有哪些
  19. 从事GIS开发多年,2017年对GIS行业的心得,尤其对三维GIS的理解 1
  20. 全球与中国葡萄酒保鲜工具市场现状及未来发展趋势

热门文章

  1. mysql 查询有 float 类型的字段查不到
  2. Swin Transformer对CNN的降维打击
  3. 手把手带你撸深度学习经典模型(一)----- UNet
  4. STM32开发 -- base64详解
  5. C语言再学习 -- 存储类型关键字
  6. 理解Android Binder机制(3/3):Java层
  7. JZOJ 1598. 文件修复
  8. 微信为什么不进入鸿蒙生态,马化腾为何迟迟不将微信, 加入任正非的华为鸿蒙生态系统中呢?...
  9. grasshop 犀牛5.0下载_新安|原创剑尊下载新版本 2020最新安卓版剑尊下载地址整理...
  10. 2020北京智源大会 图神经网络专题 总结