5个'chattr'命令使重要文件在Linux中不可更改(不可更改)

chattr命令 (更改属性)是一个命令行Linux工具,用于设置/取消某些属性在Linux系统中的文件,以确保意外删除或重要的文件和文件夹的修改,即使你登录为root用户。 在Linux本机文件系统,即ext2,ext3,ext4,btrfs等支持所有的标志,虽然所有的标志将不支持所有非本地FS。即使属性具有chattr命令的集合,也不能删除或修改文件/文件夹,即使一个属性具有完全权限。
chattr命令示例

5 chattr命令示例

这对于在系统文件中设置属性非常有用,如passwd和shadow文件,其中用户的信息包含。
语法chattr
# chattr [operator] [flags] [filename]
属性和标志
以下是可以使用chattr命令设置/取消设置的公共属性和相关标志的列表。
  1. 如果一个文件与'A'属性集访问,它的atime记录不会被更新。
  2. 如果一个文件与'S'属性设置修改,变化是同步在磁盘上的更新。
  3. 一个文件被设置 ''属性,只能在附加模式写作开放。
  4. 一个文件设定' '的属性,不能被修改的(immutable)。意味着没有重命名,没有符号链接创建,没有执行,没有可写,只有超级用户可以取消设置属性。
  5. 'J'属性的文件,则所有其信息更新到Ext3日记被更新到文件本身之前。
  6. 一个文件被设置与“T”属性,没有尾部合并。
  7. 与属性'D',A档时将转储进程运行备份没有更多的候选人。
  8. 当一个文件有“U”属性被删除,其数据将被保存。这使得用户能够请求其取消删除。
操作员
  1. +:添加属性文件的现有属性。
  2. - :删除属性的文件的现有属性。
  3. =:保持现有属性的文件有。
在这里,我们将演示一些chattr命令示例来设置/取消设置文件和文件夹的属性。

1.如何添加文件上的属性以防止删除

出于演示的目的,我们分别使用的演示文件夹和文件important_file.conf。 在设置的属性,一定要验证现有的文件有任何属性中使用“设置的ls -l ”命令。您看到结果,当前没有设置属性。
[root@howtoing howtoing]# ls -l
total 0
drwxr-xr-x. 2 root root 6 Aug 31 18:02 demo
-rwxrwxrwx. 1 root root 0 Aug 31 17:42 important_file.conf
要设置属性,我们使用的+号,并取消设置使用-标志的chattr命令的命令。 所以,让我们设置不变的位与+ I标志的文件,以防止任何人删除文件,甚至是root用户没有权限删除它。
[root@howtoing howtoing]# chattr +i demo/
[root@howtoing howtoing]# chattr +i important_file.conf
:+我只能由超级用户(即root用户)或用户使用sudo权限设置的不可改变位可以能够设置。 设置不可改变位之后,让我们来验证属性与命令'lsattr来 “。
[root@howtoing howtoing]# lsattr
----i----------- ./demo
----i----------- ./important_file.conf
现在,试图强行删除,重命名或更改的权限,但将不允许说“ 不允许操作 。”
[root@howtoing howtoing]# rm -rf demo/
rm: cannot remove âdemo/â: Operation not permitted
[root@howtoing howtoing]# mv demo/ demo_alter
mv: cannot move âdemo/â to âdemo_alterâ: Operation not permitted
[root@howtoing howtoing]# chmod 755 important_file.conf
chmod: changing permissions of âimportant_file.confâ: Operation not permitted

2.如何取消设置文件上的属性

在上面的例子中,我们已经看到了如何在这个例子中设置属性,从意外删除保护,防止文件,在这里,我们将看到如何重置(未设置属性)的权限,并允许做一个多变的文件或使用可变-我的标志。
[root@howtoing howtoing]# chattr -i demo/ important_file.conf
重置权限后,使用验证“lsattr来 ”命令文件的不可变的状态。
[root@howtoing howtoing]# lsattr
---------------- ./demo
---------------- ./important_file.conf
你在上面的结果看到,“-i”标志去掉,这意味着你可以安全地删除所有文件和文件夹位于howtoing文件夹中。
[root@howtoing howtoing]# rm -rf *
[root@howtoing howtoing]# ls -l
total 0

3.如何保护/ etc / passwd和/ etc / shadow文件

在文件/ etc / passwd文件/ etc / shadow的设置不变的属性,使他们从意外删除保护或篡改,也将禁用用户帐户的创建。
[root@howtoing howtoing]# chattr +i /etc/passwd
[root@howtoing howtoing]# chattr +i /etc/shadow
现在尝试创建一个新的系统用户,你会得到错误信息说“无法打开/ etc / passwd文件 ”。
[root@howtoing howtoing]# useradd howtoing
useradd: cannot open /etc/passwd
这样,您可以对重要文件或系统配置文件设置不可变的权限,以防止删除。

4.附加数据,而不修改文件上的现有数据

假设你只希望让大家只是在附加文件中的数据不会更改或修改已经输入的数据,你可以用' '属性如下。
[root@howtoing howtoing]# chattr +a example.txt
[root@howtoing howtoing]# lsattr example.txt
-----a---------- example.txt
设置附加模式后,可以打开文件以仅以附加模式写入数据。您可以如下所示取消设置append属性。
[root@howtoing howtoing]# chattr -a example.txt
现在,试图取代现有的文件内容example.txt的 ,你会得到错误提示“ 不允许操作 ”。
[root@howtoing howtoing]# echo "replace contain on file." > example.txt
-bash: example.txt: Operation not permitted
现在尝试追加对现有文件example.txt中新的内容和验证。
[root@howtoing howtoing]# echo "replace contain on file." >> example.txt
[root@howtoing howtoing]# cat example.txt
Here is the example to test 'a' attribute mean append only.
replace contain on file.

5.如何保护目录

为了确保整个目录及其文件,我们使用“-R”(递归)开关,“+ i”标记的文件夹的完整路径。
[root@howtoing howtoing]# chattr -R +i myfolder
设置递归属性后,尝试删除文件夹及其文件。
[root@howtoing howtoing]# rm -rf myfolder/
rm: cannot remove 'myfolder/': Operation not permitted
要取消设置权限,我们使用相同的'-R'(递归)开关与'-i'标志以及文件夹的完整路径。
[root@howtoing howtoing]# chattr -R -i myfolder
而已!要了解有关chattr命令属性的更多信息,标志和选项使用手册页。