5 chattr命令示例
语法chattr
# chattr [operator] [flags] [filename]
属性和标志
以下是可以使用chattr命令设置/取消设置的公共属性和相关标志的列表。- 如果一个文件与'A'属性集访问,它的atime记录不会被更新。
- 如果一个文件与'S'属性设置修改,变化是同步在磁盘上的更新。
- 一个文件被设置以 ''属性,只能在附加模式写作开放。
- 一个文件设定' 我 '的属性,不能被修改的(immutable)。意味着没有重命名,没有符号链接创建,没有执行,没有可写,只有超级用户可以取消设置属性。
- 用'J'属性的文件,则所有其信息更新到Ext3日记被更新到文件本身之前。
- 一个文件被设置与“T”属性,没有尾部合并。
- 与属性'D',A档时将转储进程运行备份没有更多的候选人。
- 当一个文件有“U”属性被删除,其数据将被保存。这使得用户能够请求其取消删除。
操作员
- +:添加属性文件的现有属性。
- - :删除属性的文件的现有属性。
- =:保持现有属性的文件有。
1.如何添加文件上的属性以防止删除
出于演示的目的,我们分别使用 的演示文件夹和文件 important_file.conf。 在设置的属性,一定要验证现有的文件有任何属性中使用“设置 的ls -l ”命令。您看到结果,当前没有设置属性。[root@youcl youcl]# 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@youcl youcl]# chattr +i demo/ [root@youcl youcl]# chattr +i important_file.conf注 :+我只能由超级用户(即root用户)或用户使用sudo权限设置的不可改变位可以能够设置。 设置不可改变位之后,让我们来验证属性与命令 'lsattr来 “。
[root@youcl youcl]# lsattr ----i----------- ./demo ----i----------- ./important_file.conf现在,试图强行删除,重命名或更改的权限,但将不允许说“ 不允许操作 。”
[root@youcl youcl]# rm -rf demo/ rm: cannot remove âdemo/â: Operation not permitted
[root@youcl youcl]# mv demo/ demo_alter mv: cannot move âdemo/â to âdemo_alterâ: Operation not permitted
[root@youcl youcl]# chmod 755 important_file.conf chmod: changing permissions of âimportant_file.confâ: Operation not permitted
2.如何取消设置文件上的属性
在上面的例子中,我们已经看到了如何在这个例子中设置属性,从意外删除保护,防止文件,在这里,我们将看到如何重置(未设置属性)的权限,并允许做一个多变的文件或使用可变 -我的标志。[root@youcl youcl]# chattr -i demo/ important_file.conf重置权限后,使用验证 “lsattr来 ”命令文件的不可变的状态。
[root@youcl youcl]# lsattr ---------------- ./demo ---------------- ./important_file.conf你在上面的结果看到 ,“-i”标志去掉,这意味着你可以安全地删除所有文件和文件夹位于youcl文件夹中。
[root@youcl youcl]# rm -rf * [root@youcl youcl]# ls -l total 0
3.如何保护/ etc / passwd和/ etc / shadow文件
在文件 / etc / passwd文件或 / etc / shadow的设置不变的属性,使他们从意外删除保护或篡改,也将禁用用户帐户的创建。[root@youcl youcl]# chattr +i /etc/passwd [root@youcl youcl]# chattr +i /etc/shadow现在尝试创建一个新的系统用户,你会得到错误信息说 “无法打开/ etc / passwd文件 ”。
[root@youcl youcl]# useradd youcl useradd: cannot open /etc/passwd这样,您可以对重要文件或系统配置文件设置不可变的权限,以防止删除。
4.附加数据,而不修改文件上的现有数据
假设你只希望让大家只是在附加文件中的数据不会更改或修改已经输入的数据,你可以用' 一 '属性如下。[root@youcl youcl]# chattr +a example.txt [root@youcl youcl]# lsattr example.txt -----a---------- example.txt设置附加模式后,可以打开文件以仅以附加模式写入数据。您可以如下所示取消设置append属性。
[root@youcl youcl]# chattr -a example.txt现在,试图取代现有的文件内容 example.txt的 ,你会得到错误提示“ 不允许操作 ”。
[root@youcl youcl]# echo "replace contain on file." > example.txt -bash: example.txt: Operation not permitted现在尝试追加对现有文件 example.txt中新的内容和验证。
[root@youcl youcl]# echo "replace contain on file." >> example.txt
[root@youcl youcl]# cat example.txt Here is the example to test 'a' attribute mean append only. replace contain on file.
5.如何保护目录
为了确保整个目录及其文件,我们使用 “-R”(递归)开关 ,“+ i”标记的文件夹的完整路径。[root@youcl youcl]# chattr -R +i myfolder设置递归属性后,尝试删除文件夹及其文件。
[root@youcl youcl]# rm -rf myfolder/ rm: cannot remove 'myfolder/': Operation not permitted要取消设置权限,我们使用相同的'-R'(递归)开关与'-i'标志以及文件夹的完整路径。
[root@youcl youcl]# chattr -R -i myfolder而已!要了解有关chattr命令属性的更多信息,标志和选项使用手册页。