1.基本权限rwx(掌握)
2.特殊权限suid,sgid,sbit(了解)
3.默认权限UMASK(了解)
4.特殊属性chattr(掌握)
1. 基本权限根据不同的身份(属主,属主,其他人)代表的涵义:
drwxr-xr-x 3 root root 33 Jul 15 14:18 /tmp/2021-07-15/ #目录
-rw-r--r-- 1 root root 573 Jul 15 11:57 /tmp/2021-07-15/6z.txt #文件
根据自己对这个文件的身份(属主,属组,其他人)进行如下匹配
1.1 文件总结:
r:读取,阅读,简单来说就是能看
w: 具有新增,修改文件内容的权限,但无法删除文件,需要看上级目录是否有w权限,简单来说就是能修改文件内容
x: 执行文件的权限,普通用户需要搭配r权限使用,否则无法查看文件内容,更别提执行,简单说就是加上x权限普通用户能执行脚本
1.2 目录总结:
r:查看目录及子目录内容,看文件属性会有乱码
w:增加,删除或者修改目录内文件的权限搭配x使用
x:只能进入目录
1.3 个人概况总结:
文件:
r:看
rw:看写
rx:看,执行
目录:
rx:能看目录下的内容,进入目录
rw:能看,写,无法进入目录
1.4变更权限命令
chmod 777 file
1.5 变更属主.属组
chown jacky.root file | dir
-R: 递归更改
2 特殊权限代表的含义及使用案例
2.1 suid的含义:
1)让普通用户对二进制文件拥有临时属主(root)身份
2)如果二进制文件没有x权限,显示S
3)对二进制文件有效,其他文件目录无效
4)不要对 vim rm 设置suid权限
sgid的含义:
1)让普通用户对二进制文件拥有临时属组身份
2)设置在目录上,下次新建的目录文件会继承设置目录(父目录)的属组
sbit的含义:
1) 让所有普通用户有写权限,且只能删除自己的文件
2) 其他人拥有x权限加上sbit 显示t,没有则显示T
3) 给目录,文件加上此权限用户只能操作自己的,粘滞位目录的属主,root,可以删除
2.2 综合案例:
需求:
1.创建部门目录dir_ops
2.本门成员均在ops组里
3.只有文件的创建者可以删除,其他人不可以
方案:
1,mkdir dir_ops #创建目录
2,groupadd ops #创建组,成员加入ops组
3,chgrp ops dir_ops # 更改目录的所属组
4, chmod 2755 dir_ops # 授予目录sgid权限
5, chmod 1755 dir_ops # 授予目录sbit权限
3.默认权限UMASK
3.1 默认权限计算公式:
目录 777 - 022 = 755
文件 644 - 022 = 644
3.2 umask有奇数时算出的结果加1
例:
umsak 023
dir 777 -023 = 753 rwxr-x-wx
file 666 - 023 = 643+1 = 644
4 特殊权限 chattr
4.1 语法:
chattr + a file #只能追加内容,不能删除修改,适用场景:命令窗审计日志
chattr - a file
chattr + i file #锁文件,什么都不能修改
chattr - i file
lsattr file #查看文件是否有特殊权限
4.2 模拟病毒入侵
1)准备环境:
setenforce 0
systemctl stop firewalld
systemctl disable firewalld
yum -y install httpd
systemctl start httpd
2)编写病毒脚本,尝试篡改网页内容,放在/usr/bin/virus,执行。
#!/bin/bash
HTML_PATH=/var/www/html/index.html/index
while true
do
echo "网站GG,略略略" > ${HTML_PATH}
sleep 3
echo "*/1 * * * * /bin/bash /usr/bin/virus &>/dev/null" > /var/spool/cron/root
chattr +i /usr/bin/virus
done
3) 测试
执行脚本,观察网页,此时已经将主页更改
4)解决
思路:
1.将主页内容还原,再次查看,此时查看主页又被更改。
2.查看计划任务是否又异常任务,此时发现有一条异常计划任务,尝试删除,发现又重新写入,锁住计划任务文件防止写入。
crontab -l #查看计划任务
crontabl -e #进入计划任务删除此条记录
> /var/spool/crom/root && chattr +i /var/spool/cron/root
3.过滤进程,查看异常进程 ps -ef
ps -ef | grep virus | awk '{print $2}' | sed -r 's#(.*)#kill -9 \1#g' | bash
#查看进程,过滤出virus,用AWK将PID过滤出来,同sed命令拼接命令,交给bash执行。
#sed -r 's#(.*)#kill -9 \1#g' 效果如下:
#kill -9 10764
#kill -9 3308
#kill -9 3608
#kill -9 ....
4.将index.html,计划任务文件取消特殊i权限
lsattr /var/www/html/index.html
lsattr /var/spool/crom/root
chattr -i /var/spool/crom/root
chattr -i /var/www/html/index
网友评论