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
相关推荐
迷茫运维路1 分钟前
Jenkins声明式Pipeline流水线语法示例
运维·pipeline·jenkins·声明式
Zfox_18 分钟前
【Linux】进程信号全攻略(二)
linux·运维·c语言·c++
速盾cdn18 分钟前
速盾:vue的cdn是干嘛的?
服务器·前端·网络
安於宿命23 分钟前
【Linux】简易版shell
linux·运维·服务器
丶Darling.26 分钟前
MIT 6.S081 Lab1: Xv6 and Unix utilities翻译
服务器·unix·lab·mit 6.s081·英文翻译中文
追梦不止~30 分钟前
Docker常用命令+详解
运维·docker·容器
黑龙江亿林等保33 分钟前
深入探索哈尔滨二级等保下的负载均衡SLB及其核心算法
运维·算法·负载均衡
黄小耶@34 分钟前
linux常见命令
linux·运维·服务器
叫我龙翔35 分钟前
【计网】实现reactor反应堆模型 --- 框架搭建
linux·运维·网络
古驿幽情38 分钟前
CentOS AppStream 8 手动更新 yum源
linux·运维·centos·yum