在Linux下创建写保护的文件的教程

2016-03-31 15:35 30 1 收藏

关注图老师电脑网络栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享在Linux下创建写保护的文件的教程教程,希望对大家能有一点小小的帮助。

【 tulaoshi.com - 服务器 】

在Linux下创建写保护的文件的教程

   假如你想对Linux中的一些重要文件做写保护,这样它们就不能被删除或者被篡改成之前的版本或者其他东西,或者在其他情况下,你可能想避免某些配置文件被软件自动修改。使用chown和chmod命令修改文件的归属关系或者权限位是处理这种情况的一个解决方法,但这并不完美,因为这样无法避免有root权限的操作。这时chattr就派上用场了。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/fuwuqi/)

  chattr是一个可以设置或取消文件的标志位的Linux命令,它和标准的文件权限(读、写、执行)是分离的。与此相关的另一个命令是lsattr,它可以显示文件的哪些标志位被设置上了。最初只有EXT文件系统(EXT2/3/4)支持chattr和lsattr所管理的标志位,但现在很多其他的原生的Linux文件系统都支持了,比如XFS、Btrfs、ReiserFS等等。

  在这个教程中,我会示范如果使用chattr来让Linux中的文件不可变更。

  chattr和lsattr命令是e2fsprogs包的一部分,它在所有现代Linux发行版都预装了。

  下面是chattr的基本语法。

  $ chattr [-RVf] [操作符][标志位] 文件...

  其中操作符可以是+(把选定的标志位添加到标志位列表)、-(从标志位列表中移除选定的标志位)、或者=(强制使用选定的标志位)。

  下面是一些可用的标志位。

  a: 只能以追加模式打开。

  A: 不能更新atime(文件访问时间)。

  c: 当被写入磁盘时被自动压缩。

  C: 关掉写时复制。

  i: 不可变更。

  s: 通过自动归零来安全删除。(LCTT 译注:一般情况文件被删后内容不会被修改,改标志位会使得文件被删后原有内容被0取代)

  不可变更标志位

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/fuwuqi/)

  为了让一个文件不可变更,你需要按照如下方法为这个文件添加不可变更标志位。例如,对/etc/passwd文件做写保护:

  代码如下:

  $ sudo chattr +i /etc/passwd

  注意设置或取消一个文件的不可变更标志位是需要root用户权限的。现在检查该文件不可变更标志位是否被添加上了。

  代码如下:

  $ lsattr /etc/passwd

  一旦文件被设置为不可变更,任何用户都将无法修改该文件。即使是root用户也不可以修改、删除、覆盖、移动或者重命名这个文件。如果你想再次修改这个文件,需要先把不可变更标志位取消了。

  用如下命令取消不可变更标志位:

  代码如下:

  $ sudo chattr -i /etc/passwd

2015528180033031.jpg (778×273)

  如果你想让一个目录(比如/etc)连同它下边的所有内容不可变更,使用-R选项:

  代码如下:

  $ sudo chattr -R +i /etc

  只可追加标志位

  另一个有用的的标志位是只可追加,它只允许文件内容被追加的方式修改。你不能覆盖或者删除一个设置了只可追加标志位的文件。这个标志位在你想避免日志文件被意外清理掉的情况很有用。

  和不可变更标志位类似,你可以使用如下命令让文件变成只可追加模式:

  代码如下:

  $ sudo chattr +a /var/log/syslog

  注意当你复制一个不可变更或者只可追加的文件到其他地方后,新文件不会保留这些标志位!

  结论

  在这个教程中,我展示了如何使用chattr和lsattr命令来管理额外的文件标志位,来避免文件被篡改(意外或者其他情况)的方法。注意你不能将chattr作为一个安全措施,因为不可变更标志位可以很容易被取消掉。解决这个问题的一个可能的方式是限制chattr命令自身的可用性,或者去掉CAPLINUXIMMUTABLE内核权能标志。关于chattr以及可用的标志位的更多细节,请参考它的man手册。

来源:https://www.tulaoshi.com/n/20160331/2050834.html

延伸阅读
由于Oracle自身比较复杂,在Linux环境下安装要涉及很多方面的因素。本文分两个方面介绍在Linux RedHat 6.0环境下Oracle 8.0.5的安装。 一、调整Linux核心与环境 在安装Oracle之前,应该先对RedHat 6.0的Linux内核与环境进行调整,要做以下工作: 1、在完成RedHat 6.0 Linux的缺省安装后,需要安装以下软件包。 kernel -source -2.2.5...
标签: 服务器
再Linux下使用Tar工具归档文件的教程   Tar 由 'Tape archiver(磁带归档器)' 衍生而来,最初被用来在磁带上归档和存储文件。Tar 是一个 GNU 软件,它可以压缩一组文件(归档),或提取它们以及对已有的归档文件进行相关操作。在存储、备份以及传输文件方面,它是很有用的。在创建归档文件时,Tar 可以保持原有文件和目录结构不变。通...
标签: 服务器
详解Linux系统下的hosts文件   hosts文件 hosts the static table lookup for host name(主机名查询静态表)。 hosts文件是Linux系统上一个负责ip地址与域名快速解析的文件,以ascii格式保存在/etc/目录下。hosts文件包含了ip地址与主机名之间的映射,还包括主机的别名。在没有域名解析服务器的情况下,系统上的所有网络程...
/*******************************************************************本文首发于bbs.bluegem.org的CWorld区*本人email:chenfei@sohu.com*如转载本文,请保留首发地和本人联络方式,以方便交流, !-- frame contents -- !-- /frame contents -- 谢谢!******************************************************************/ ...
标签: 服务器
Linux创建FIFO文件类型的方法   FIFO管道是一种文件类型,在Linux上创建FIFO非常容易,FIFO文件固有管道的特性,但和pipe管道有一定的区别,下面小编将针对FIFO管道的创建和使用做个详细介绍,以便你有个详细的了解。 FIFO,又称作命名管道(named pipe),它是Linux系统中用于进程间通信的一种方法。 FIFO和pipe的区...

经验教程

710

收藏

66
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部