特殊文件属性命令 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.txt加a****锁,使其不能删不能改,但可以追加内容到文件结尾。
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 . 会把你监控查看木马的系统命令都替换掉一模一样的命令(黑客改过的)。( 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