Linux权限管理 chattr命令、lsattr命令、sudo命令

chattr命令

chattr命令用来修改文件系统的权限属性

chatrr 只有 root 用户可以使用,用来修改文件系统的权限属性,建立凌驾于 rwx 基础权限之上的授权。
chatrr 命令格式如下:

选项:

 选项 选项说明

+

増加权限

-

删除权限

=

等于某权限

i

如果对文件设置属性,那么不允许对文件进行删除、改名,也不能添加和修改数据;

如果对目录设置 i 属性,那么只能修改目录下文件中的数据,但不允许建立和删除文件

a

如果对文件设置 a 属性,那么只能在文件中増加数据,但是不能删除和修改数据;

如果对目录设置 a 属性,那么只允许在目录中建立和修改文件,但是不允许删除文件

e

Linux 中的绝大多数文件都默认拥有 e 属性,表示该文件是使用 ext 文件系统进行存储的,

而且不能使用"chattr -e"命令取消 e 属性

 

还是举几个例子吧。

#给文件赋予属性
[root@localhost ~]# touch ftest
#建立测试文件
[root@localhost ~]# chattr +i ftest
[root@localhost ~]# rm -rf flest
rm:无法删除"ftesr":不允许的操作
#被赋予i属性后,root不能删除
[root@localhost ~]# echo 111>>ftest -bash:ftest:权限不够
#也不能修改文件中的数据
#给目录赋予i属性
[root@localhost ~]# mkdir dtest
#建立测试目录
[root@localhost dtest]# touch dtest/abc
#再建立一个测试文件abc
[root@localhost ~]# chattr +i dtest/
#给目录赋予i属性
[root@localhost ~]# cd dtest/
[root@localhost dtest]# touch bed
touch:无法创建"bcd":权限不够
#dtest目录不能新建文件
[root@localhost dtest]# echo 11>>abc
[root@localhost dtest]# cat abc
11
#但是可以修改文件内容
[root@localhost dtest]# rm -rf abc
rm:无法删除"abc":权限不够
#不能删除

此时,flest 文件和 dtest 目录都变得非常强悍,即便你是 root 用户,也无法删除和修改它。若要更改或删除文件,也必须先去掉 i 属性才可以。命令如下:

[root@localhost ~]# chattr -i ftest
[root@localhost ~]# chattr -i dtest/


在举个例子,演示一下 a 属性。假设有这样一种应用,我们每天自动实现把服务器的日志备份到指定目录,备份目录可设置 a 属性,变为只可创建文件而不可删除。命令如下:

[root@localhost ~]# mkdir -p /back/log
#建立备份目录
[root@localhost ~]# chattr +a /back/log/
#赋予a属性
[root@localhost ~]# cp /var/log/messages /back/log/
#可以复制文件和新建文件到指定目录中
[root@localhost ~]# rm -rf /back/log/messages
rm:无法删除"/back/log/messages":不允许的操作
#但是不允许删除

chattr 命令不宜对目录 /、/dev/、/tmp/、/var/ 等进行设置,严重者甚至容易导致系统无法启动。
 
lsattr 命令比较简单,其命令格式如下:

[root@localhost ~]# lsattr 选项 文件名

选项:
  • -a:显示所有文件和目录;
  • -d:如果目标是目录,则仅列出目录本身的属性,而不会列出文件的属性;

例如:

[root@localhost ~]#lsattr -d /back/log/
-----a------e- /back/log/
#查看/back/log/目录,其拥有a和e属性

猜你喜欢

转载自www.cnblogs.com/lizhouwei/p/9974538.html
今日推荐