MD5校验
作用: 可以给文件做一个MD5校验值
如果文件内容不变 则MD5不变
如果内容发生变化 则MD5变化
必须在root下执行
第一步: 给重要的文件做MD5值
环境准备:
[root@ahui ~]#echo www.ahui.com > code.txt
[root@ahui ~]#cat code.txt
www.ahui.com
给code.txt做MD5校验 默认输出到屏幕
[root@ahui ~]#md5sum code.txt
13d2dc1d237f3789bb1466fbaae5eab7 code.txt
第二步: 将输出的结果存入到police.txt
[root@ahui ~]#md5sum code.txt > police.txt
第三步: 检测当前的文件和原来的MD5校验值是否相同,检测注意文件中的路径
1)手动校验方式
校验当前的文件
[root@ahui ~]#md5sum code.txt
13d2dc1d237f3789bb1466fbaae5eab7 code.txt
查看原校验值
[root@ahui ~]#cat police.txt
13d2dc1d237f3789bb1466fbaae5eab7 code.txt
2)直接通过保存的校验值进行检测
通过检测当前路径 code.txt 的值是否和police文件中已经生成的值相同
如果相同文件没有被修改
如果不同文件被修改
[root@ahui ~]#cat police.txt
13d2dc1d237f3789bb1466fbaae5eab7 code.txt
[root@ahui ~]#md5sum -c police.txt
code.txt: OK
文件被修改的提示:
[root@ahui ~]#md5sum -c police.txt
code.txt: FAILED
md5sum: WARNING: 1 computed checksum did NOT match
在什么情况下使用MD5校验值
- 网站代码 对外提供访问的
- 重要的系统文件
- 重要的配置文件
在什么情况下MD5值关闭
在做代码 功能更新的情况(自己的开发需要修改代码 运维需要修改配置)
如果黑客篡改了我们的代码:
- 代码必须备份 备份的是最新的代码 没有任何问题的代码
- grep -r ‘关键字’ ./* 查找出被篡改的文件
- 将篡改的文件移动到/tmp目录下 保留证据查找原因
- 将备份的没有问题的代码移动到代码目录(用户访问的目录)恢复业务
案例:
通过通配符和find取值:
- 通过通配符的方式
[root@ahui ~]#md5sum *.txt
60b725f10c9c85c70d97880dfe8191b3 1.txt
3b5d5c3712955042212316173ccf37be 2.txt
2cd6ee2c70b0bde53fbe6cac3c8b8bb1 3.txt
- 通过find方式
[root@ahui ~]#find ./ -type f -name "*.txt"|xargs md5sum
60b725f10c9c85c70d97880dfe8191b3 ./1.txt
3b5d5c3712955042212316173ccf37be ./2.txt
2cd6ee2c70b0bde53fbe6cac3c8b8bb1 ./3.txt
将获取到的值放入文件中:
[root@ahui ~]#find /root/ -type f -name "*.txt"
/root/1.txt
/root/2.txt
/root/3.txt
[root@ahui ~]#find /root/ -type f -name "*.txt"|xargs md5sum
60b725f10c9c85c70d97880dfe8191b3 /root/1.txt
3b5d5c3712955042212316173ccf37be /root/2.txt
2cd6ee2c70b0bde53fbe6cac3c8b8bb1 /root/3.txt
[root@ahui ~]#find /root/ -type f -name "*.txt"|xargs md5sum > /opt/police.txt
[root@ahui ~]#cat /opt/police.txt
60b725f10c9c85c70d97880dfe8191b3 /root/1.txt
3b5d5c3712955042212316173ccf37be /root/2.txt
2cd6ee2c70b0bde53fbe6cac3c8b8bb1 /root/3.txt
在任意的目录下进行检测
[root@ahui ~]#md5sum -c /opt/police.txt
/root/1.txt: OK
/root/2.txt: OK
/root/3.txt: OK
以上手动取值 手动检测
一般通过定时任务+脚本方式进行自动检测
用户相关命令
- id 查看用户信息 uid gid
- w 查看登陆用户和系统性能信息
- top 动态查看系统性能信息
- ps axuf
- last 通过last日志 辅助排除问题 查看不认识的IP登陆和离开时间段的相关日志
last lastlog
[root@ahui ~]#last
登陆用户 终端 来源IP 连接时间 断开时间
root pts/2 10.0.0.1 Thu May 19 10:04 still logged in
root pts/1 10.0.0.1 Thu May 19 08:18 still logged in
root pts/2 10.0.0.1 Wed May 18 12:04 - 12:04 (00:00)
-
lastlog 每个用户最后一次登陆的时间
[root@ahui ~]#lastlog
Username Port From Latest
root pts/2 10.0.0.1 Thu May 19 10:04:19 +0800 2022 -
sudo 临时让普通用户执行的命令拥有root的权限
为了系统安全: 都是通过普通用户登陆操作系统- 禁止root登陆系统
- 使用普通用户登陆 开发 测试 运维都是普通用户
- 运维可以通过 su - root切换到管理员
- 开发和测试禁止切换root 没有权限
chown 修改文件的属主和属组
参数:
- -R 递归修改文件属主属组
语法结构:
- chown B13K 1.txt # 只修改属主
- chown .B13K 1.txt # 只修改属组
- chown -R B13K.B13K 1.txt # 修改属主和属组
[root@ahui ~]#chown B13K 1.txt
[root@ahui ~]#ll
total 0
-rw-r--r-- 1 B13K root 0 May 19 12:16 1.txt
案例:修改文件的属组
[root@ahui ~]#chown root 1.txt
[root@ahui ~]#ll
total 0
-rw-r--r-- 1 root root 0 May 19 12:16 1.txt
[root@ahui ~]#chown .B13K 1.txt
[root@ahui ~]#ll
total 0
-rw-r--r-- 1 root B13K 0 May 19 12:16 1.txt
案例:修改文件属主和属组
[root@ahui ~]#chown B13K.B13K 1.txt
[root@ahui ~]#ll
total 0
-rw-r--r-- 1 B13K B13K 0 May 19 12:16 1.txt
案例:修改目录及目录下所有文件的属主属组
不加参数默认只修改的是目录的属主和属组
[root@ahui ~]#chown B13K.B13K B13K/
[root@ahui ~]#ll
total 0
-rw-r--r-- 1 B13K B13K 0 May 19 12:16 1.txt
drwxr-xr-x 2 B13K B13K 45 May 19 12:19 B13K
[root@ahui ~]#ll B13K/
total 0
-rw-r--r-- 1 root root 0 May 19 12:19 1.txt
-rw-r--r-- 1 root root 0 May 19 12:19 2.txt
-rw-r--r-- 1 root root 0 May 19 12:19 3.txt
-R 递归修改目录及目录以下所有文件的属主和属组
[root@ahui ~]#chown -R B13K.B13K B13K/
[root@ahui ~]#ll B13K/
total 0
-rw-r--r-- 1 B13K B13K 0 May 19 12:19 1.txt
-rw-r--r-- 1 B13K B13K 0 May 19 12:19 2.txt
-rw-r--r-- 1 B13K B13K 0 May 19 12:19 3.txt
案例:创建一个用户名称test01 uid 889 允许登陆 创建家目录 属于B13K01组的
useradd -u889 -g B13K01 # 错误的 本身命令没问题 但是没有B13K01组
正确执行方式:
[root@ahui ~]#groupadd B13K01 # 先创建组 B13K01
[root@ahui ~]#useradd -u889 -g B13K01 test01 # 在创建用户加入B13K01组
创建一个用户test02 uid 900 允许登陆 创建家目录 属于test02组 执行命令?
[root@ahui ~]#useradd -u900 test02
[root@ahui ~]#id test02
uid=900(test02) gid=1021(test02) groups=1021(test02)
sudo授权普通用户管理员权限
问题: 开发和测试想要执行和root相关的命令
B13K用户查看/var/log/secure安全日志
[root@ahui ~]#su - B13K
[B13K@ahui ~]$cat /var/log/secure
cat: /var/log/secure: Permission denied # 权限拒绝
解决: 让B13K用户有权限查案secure日志
1) 通过su - 切换到root
2) 通过sudo提权 让普通用户执行命令拥有root的权限
sudo 类似尚方大宝剑 黄马褂
普通用户执行 cat 能查看的文件只能是普通的文件
cat 拥有了尚方宝剑 在执行的时候相当于用root身份运行cat 可以查看所有文件
3) B13K用户需要root的权限才可以查看日志
需要root授权给B13K特权
皇帝授予平民尚方大宝剑
4) 查看当前是否有大宝剑 默认平民 普通用户没有sudo权限
[B13K@ahui ~]$sudo -l
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for B13K: # 输入B13K密码
Sorry, user B13K may not run sudo on ahui.
5) root用户授权给B13K cat命令执行时拥有root的权限
B13K用户在执行cat命令时 相当于是root用户在执行cat
授权方式:
第一种 visudo
通过visodu打开的是/etc/sudoers配置文件
拥有语法检查功能 如果配置写的不正确 不让保存
[root@ahui ~]#visudo
[root@ahui ~]#grep B13K /etc/sudoers
授权用户 允许的主机=成为哪个用户默认root 授权的命令
B13K ALL=(ALL) /usr/bin/cat
第二种 直接编辑 /etc/sudoers (没有语法检查功能)
6|) 查看B13K的sudo命令
[B13K@ahui ~]$sudo -l
[sudo] password for B13K:
Matching Defaults entries for B13K on ahui:
!visiblepw, always_set_home, match_group_by_gid, env_reset, env_keep="COLORS DISPLAY
HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG
LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT
LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
User B13K may run the following commands on ahui:
(ALL) /usr/bin/cat # 拥有了cat命令
7) 测试cat命令是否能查看secure日志文件
[B13K@ahui ~]$cat /var/log/secure
cat: /var/log/secure: Permission denied
授权后执行命令时候 需要用sudo 命令 方式执行
[B13K@ahui ~]$sudo cat /var/log/secure
授权普通用户执行命令:
授权多个命令使用逗号分隔:
[root@ahui ~]#grep B13K /etc/sudoers
B13K ALL=(ALL) /usr/bin/cat,/usr/bin/touch,/usr/bin/ls
授权所有的命令 给开发授权不允许用* 权限太大
B13K ALL=(ALL) /usr/bin/*
授权的命令进行取反:
[root@ahui ~]#grep B13K /etc/sudoers
B13K ALL=(ALL) /usr/bin/*,!/usr/bin/vim,!/usr/bin/su
运维配置sudo方式: 执行sudo命令不需要普通用户密码 授权所有命令给运维人员(不能切换到root使用此种方式)
[root@ahui ~]#grep B13K /etc/sudoers
B13K ALL=(ALL) NOPASSWD: ALL
小结:
-
MD5校验
单个文件校验md5sum filename
多个文件校验md5sum filename1 filename1
从文件中验证指定文件是否被修改md5sum -c 文件.md5 -
chown 修改文件的属主和属组
-R 递归修改文件属主属组 -
sudo提权
visudo 语法检测功能 编辑的是 /etc/sudoers
vim /etc/sudoers 没有语法检测功能
配置授权:
B13K ALL=(ALL) 授权命令(绝对路径通过which查看命令所在目录)普通用户使用: sudo
sudo -l #查看sudo命令
sudo 命令 #执行sudo命令