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
相关推荐
阿星智力囊25 分钟前
Thinkphp6+nginx环境报错信息不显示,接口直接报500和CORS跨域(错误的引导方向),真坑啊
运维·nginx·php·thinkphp6
代码AC不AC2 小时前
【Linux】计算机的基石:从冯·诺依曼体系结构到操作系统管理
linux·操作系统·冯诺依曼体系结构
大柏怎么被偷了2 小时前
【Linux】进程等待
linux·运维·服务器
云和数据.ChenGuang3 小时前
运维面试题之oracle和mysql单表最大容量
运维·mysql·oracle
互联网老欣3 小时前
2025年保姆级教程:阿里云服务器部署Dify+Ollama,打造专属AI应用平台
服务器·阿里云·ai·云计算·dify·ollama·deepseek
偶像你挑的噻3 小时前
12-Linux驱动开发- SPI子系统
linux·驱动开发·stm32·嵌入式硬件
酷柚易汛智推官3 小时前
Fastlane赋能移动研发:从全流程自动化到工程效能升级
运维·自动化·酷柚易汛
落798.4 小时前
Genlogin × Bright Data,一键解锁自动化采集的高成功率方案
运维·自动化·数据采集·亮数据
羑悻的小杀马特4 小时前
轻量跨云·掌控无界:Portainer CE + cpolar 让远程容器运维像点外卖一样简单——免复杂配置,安全直达对应集群
运维·网络·安全·docker·cpolar
松涛和鸣4 小时前
16、C 语言高级指针与结构体
linux·c语言·开发语言·数据结构·git·算法