Linux 特殊文件属性命令chattr和lsattr

特殊文件属性命令 chattr lsattr
chattr 和 lsattr 是有关数据安全的命令:

1**)chattr作用及语法**

**a.**命令作用:

文件或目录 加锁,不让别人修改和删除

**b.**命令语法:

chattr 选项 文件

c**.**选项属性:

i 给文件加锁, 不能删不能改
a 可以追加内容,但不能删除文件

d.选项动作:
  • 减少
  • 增加
    = 赋予
**e.**练习理解
Matlab 复制代码
##1.创建oldboy.txt
[root@oldboyedu ~]# touch oldboy.txt
##2.给oldboy.txt加i锁
[root@oldboyedu ~]# chattr +i oldboy.txt
##3.测试删除oldboy.txt,结果是无法删除
[root@oldboyedu ~]# rm -f oldboy.txt
rm: 无法删除"oldboy.txt": 不允许的操作
##4.使用lsattr查看属性
[root@oldboyedu ~]# lsattr oldboy.txt
----i----------- oldboy.txt
##5.修改文件oldboy.txt,结果无权限
[root@oldboyedu ~]# echo 1 >oldboy.txt
-bash: oldboy.txt: 权限不够
f.oldboy.txta****锁,使其不能删不能改,但可以追加内容到文件结尾。
1**)工作场景****:**给关键文件加锁
Matlab 复制代码
关键文件:/etc/passwd、/etc/group、/etc/shadow、/etc/gshadow、/etc/sudoers
##1.给oldboy.txt解锁
[root@oldboyedu ~]# chattr -i oldboy.txt
##2.查看解锁属性
[root@oldboyedu ~]# lsattr oldboy.txt
---------------- oldboy.txt
##3.编辑及删除,发现可以了
[root@oldboyedu ~]# echo 1 >oldboy.txt
[root@oldboyedu ~]# cat oldboy.txt
1
[root@oldboyedu ~]# rm -f oldboy.txt
[root@oldboy ~]# ls
##1.创建文件
[root@oldboyedu ~]# touch oldboy.txt
##2.加a锁
[root@oldboyedu ~]# chattr +a oldboy.txt
##3.查看属性
[root@oldboyedu ~]# lsattr oldboy.txt
-----a---------- oldboy.txt
##4.测试删除
[root@oldboyedu ~]# rm -f oldboy.txt
rm: 无法删除"oldboy.txt": 不允许的操作
##5.测试追加
[root@oldboyedu ~]# echo oldboy >>oldboy.txt
[root@oldboyedu ~]# echo oldboy >>oldboy.txt
[root@oldboyedu ~]# cat oldboy.txt
oldboy
oldboy
##6.不能覆盖
[root@oldboyedu ~]# echo oldboy >oldboy.txt
-bash: oldboy.txt: 不允许的操作
##1.给关键文件加锁:
[root@oldboyedu ~]# chattr +i /etc/passwd /etc/group /etc/shadow /etc/sudoers
##2.查看加锁
[root@oldboyedu ~]# lsattr /etc/passwd /etc/group /etc/shadow /etc/sudoers
----i----------- /etc/passwd
----i----------- /etc/group
----i----------- /etc/shadow
----i----------- /etc/sudoers自己操作,先解锁在添加,然后再加锁
2**)生产场景:提升安全,又不降低效率**
Matlab 复制代码
##3.测试添加用户、删除用户、编辑sudo文件,结果均不行。
[root@oldboyedu ~]# useradd zuma
useradd:无法打开 /etc/passwd
[root@oldboyedu ~]# userdel oldboy03
userdel:无法打开 /etc/passwd
[root@oldboyedu ~]# visudo
visudo: /etc/sudoers: 权限不够
[root@oldboyedu ~]# chattr -i /etc/passwd /etc/group /etc/shadow /etc/gshadow
/etc/sudoers
[root@oldboyedu ~]# lsattr /etc/passwd /etc/group /etc/shadow /etc/gshadow
/etc/sudoers
---------------- /etc/passwd
---------------- /etc/group
---------------- /etc/shadow
---------------- /etc/gshadow
---------------- /etc/sudoers
[root@oldboyedu ~]# useradd inca
[root@oldboyedu ~]# id inca
uid=10006(inca) gid=10007(inca) 组=10007(inca)
[root@oldboyedu ~]# chattr -i /etc/passwd /etc/group /etc/shadow /etc/sudoers
[root@oldboyedu ~]# useradd boy
[root@oldboyedu ~]# chattr +i /etc/passwd /etc/group /etc/shadow /etc/sudoers
##1.编辑脚本
[root@oldboyedu ~]# vim /bin/test.sh
[root@oldboyedu ~]# cat /bin/test.sh
chattr -i /etc/passwd /etc/group /etc/shadow /etc/gshadow /etc/sudoers
$*
chattr +i /etc/passwd /etc/group /etc/shadow /etc/gshadow /etc/sudoers
##$* 脚本文件后输入的命令
##2.设置执行权限
[root@oldboyedu ~]# chmod +x /bin/test.sh
##3.操作:命令前面带test.sh
[root@oldboyedu ~]# test.sh useradd oldboy11
[root@oldboyedu ~]# id oldboy11
uid=10008(oldboy11) gid=10009(oldboy11) 组=10009(oldboy11)
##4.不带test.sh,无法删除
[root@oldboyedu ~]# userdel -r oldboy11
userdel:无法打开 /etc/passwd
##5.带test.sh,就可以删除
**3)**给所有命令批量加锁
Matlab 复制代码
[root@oldboyedu ~]# test.sh userdel -r oldboy11
[root@oldboyedu ~]# id oldboy11
id: oldboy11: no such user
[root@oldboyedu ~]# find /bin/ /sbin/ -type f|xargs chattr +i
[root@oldboyedu ~]# rm -f /bin/ls
rm: 无法删除"/bin/ls": 不允许的操作
[root@oldboyedu ~]# echo 11 >/bin/ls
-bash: /bin/ls: 权限不够
4)和黑客PK

黑客可上传文件的 Linux 目录: /tmp 、 /home/oldboy( 普通用户权限 ) 、应用程序目录
获得权限途径:

  1. 直接获得用户权限。
  2. 通过应用程序对应的用户获得权限。
  3. 通过程序漏洞获得用户权限。

黑客手段:

1 . 黑客通过漏洞进入电脑服务器,把木马程序种上 .
2 . 会把你监控查看木马的系统命令都替换掉一模一样的命令(黑客改过的)。( ps,top 查看进程)
3 . 这样管理员就无法发现黑客的木马程序了。

黑客如果想解锁,要拿到 root 权限

还要能执行 chattr

Matlab 复制代码
##1.修改chattr的名字为oldboy
[root@oldboyedu ~]# mv /bin/chattr /bin/oldboy
##2.测试删除oldboy03用户(提前存在)
[root@oldboyedu ~]# userdel oldboy03
userdel:无法打开 /etc/passwd
##3.使用修改的命令解锁
[root@oldboyedu ~]# oldboy -i /etc/passwd /etc/group /etc/shadow /etc/sudoers
##4.依然可以删除
[root@oldboyedu ~]# userdel oldboy03
[root@oldboyedu ~]# mkdir oldboy
[root@oldboyedu ~]# ls
oldboy oldboy.txt
[root@oldboyedu ~]# chattr +i oldboy
[root@oldboyedu ~]# rm -fr oldboy
rm: 无法删除"oldboy": 不允许的操作
5**)命令历史管理**
Matlab 复制代码
a.命令:history
b.选项:
-c #清除所有命令
-d 序号 #清除指定命令
c.生产清除历史记录
[root@oldboyedu ~]# touch oldboy/a.txt
touch: 无法创建"oldboy/a.txt": 权限不够
[root@oldboyedu ~]# cd oldboy
[root@oldboyedu oldboy]# touch a.txt
touch: 无法创建"a.txt": 权限不够
[root@oldboyedu oldboy]# cd ../
[root@oldboyedu ~]#
[root@oldboyedu ~]#
[root@oldboyedu ~]# chattr -i oldboy
[root@oldboyedu ~]# chattr +a oldboy
[root@oldboyedu ~]#
[root@oldboyedu ~]# rm -fr oldboy
rm: 无法删除"oldboy": 不允许的操作
[root@oldboyedu ~]# touch oldboy/a.txt
[root@oldboyedu ~]# echo ddd >>oldboy/a.txt
[root@oldboyedu ~]# cd oldboy
[root@oldboyedu oldboy]# ls
a.txt
[root@oldboyedu oldboy]# cat a.txt
ddd
[root@oldboyedu oldboy]# rm -f a.txt
rm: 无法删除"a.txt": 不允许的操作
##1.清除命令行历史记录
history -c
##2.清除家目录文件里的历史记录
>~/.bash_history
##3.设置保留5条历史记录
export HISTSIZE=5
#永久保存,vim /etc/profile设置永久不记录历史记录,source /etc/profile
##4.[堡垒机]或者跳板机jumpsever,然后连接服务器,
#确保操作都通过跳板机操作。会记录所有命令并且可以回放记录。
6**)学习完恢复原状**
Matlab 复制代码
mv /bin/oldboy /bin/chattr
chattr -i /etc/passwd /etc/group /etc/shadow /etc/gshadow /etc/sudoers
相关推荐
2201_7611990441 分钟前
nginx 负载均衡1
linux·运维·服务器·nginx·负载均衡
suri ..1 小时前
【Linux】进程第三弹(虚拟地址空间)
linux·运维·服务器
害羞的白菜1 小时前
Nginx基础详解5(nginx集群、四七层的负载均衡、Jmeter工具的使用、实验验证集群的性能与单节点的性能)
linux·运维·笔记·jmeter·nginx·centos·负载均衡
纪伊路上盛名在1 小时前
如何初步部署自己的服务器,达到生信分析的及格线
linux·运维·服务器·python·学习·r语言·github
爱滑雪的码农1 小时前
快速熟悉Nginx
运维·nginx·dubbo
Betty’s Sweet1 小时前
[Linux]:线程(三)
linux·线程·信号量·生产者消费者模型
0DayHP1 小时前
HTB:Bike[WriteUP]
运维·服务器
DieSnowK1 小时前
[C++][第三方库][httplib]详细讲解
服务器·开发语言·c++·http·第三方库·新手向·httplib
程序员南飞3 小时前
ps aux | grep smart_webrtc这条指令代表什么意思
java·linux·ubuntu·webrtc
StrokeAce3 小时前
linux桌面软件(wps)内嵌到主窗口后的关闭问题
linux·c++·qt·wps·窗口内嵌