Linux综合基础测试
实验1:文件目录结构与基本命令操作
1、在/tmp目录下创建如下目录结构:
/tmp/test/ |
命令
mkdir -p /tmp/test/{dir1,dir2} # -p 递归创建目录 |

2、将dir1目录及其内容复制到dir2/subdir下
cp -r /tmp/test/dir1/ /tmp/test/dir2/subdir/ # -r 移动整个目录 |

3、查找/tmp目录下所有.txt文件并显示详细信息
find /tmp -name "*.txt" -exec ls -l {} + # 查找tmp目录下名为.txt的文件再使用 ls -l 命令查看详细信息 |

4、将file3.txt移动到dir1目录并重命名为newfile.txt
mv /tmp/test/file3.txt /tmp/test/dir1/newfile.txt # mv重命名文件 |

实验2:用户与组管理
1、创建用户user1、user2和组group1
useradd user1 # 密码为123 |

2、将user1和user2加入group1组
usermod -aG group1 user1 # -aG 添加到附加组 |

3、创建目录/shared,设置权限使group1组成员可以读写,其他人无权限
mkdir /shared |

4、验证user1可以在/shared中创建文件,user3(非组成员)不能访问
su - user1 |


实验3:权限管理(UGO)
1、创建文件/data/secret.txt,内容为”Top Secret”
mkdir /data |

2、设置权限:所有者root可读写,组admin可读,其他人无权限
groupadd admin |

3、创建用户testuser并尝试访问该文件验证权限
useradd testuser |

4、使用ACL添加testuser的读写权限
setfacl -m u:testuser:rw /data/secret.txt # 为用户testuser添加读写权限 |

实验4:SUID权限应用
1、创建脚本/usr/local/bin/showfile,内容为显示/etc/shadow文件内容
vim /usr/local/bin/showfile |

2、设置脚本所有者为root并添加SUID权限
chmod u+s /usr/local/bin/showfile |

3、使用普通用户执行该脚本验证权限提升
# 未添加执行权限 |

# 添加执行权限 |

[root@wickt 桌面]# su - enterprise |
###!!!Linux内核出于安全考虑,忽略脚本文件的SUID位
4、实验完成后移除SUID权限
# 未添加执行权限 |

###!!!Linux内核出于安全考虑,忽略脚本文件的SUID位
要求:对脚本内容进行注释
#showfile |
#showfile |
实验5:文件属性保护
1、创建重要配置文件/etc/important.conf
touch /etc/important.conf |

2、使用chattr命令防止文件被修改或删除
chattr +i /etc/important.conf # -i 文件不能被修改、删除、重命名 |

3、尝试修改和删除文件验证保护效果
rm -rf /etc/important.conf # 删除成文件 |

4、恢复文件正常属性
chattr -i /etc/important.conf # 删除 i 属性 |

实验6:sudo权限配置
1、创建用户admin和组sudoadmin
useradd admin |

2、配置sudo使sudoadmin组成员可以执行所有命令无需密码
visudo |

3、将admin用户加入sudoadmin组
usermod -aG sudoadmin admin |

4、验证admin用户可以使用sudo执行特权命令
[root@wickt 桌面]# su - admin |

实验7:综合权限管理
1、创建目录/project,属组为devteam
mkdir /project |

2、设置权限:组成员可读写,其他人只读
chmod g+w,o-x /project # 为组成员添加读权限,删除其他人的执行权限 |

3、设置SGID权限使新建文件自动继承组权限
chmod g+s /project/ |

4、创建用户dev1、dev2并加入devteam组
useradd dev1 |

5、验证dev1创建的文件dev2可以编辑
[root@wickt 桌面]# su - dev1 |

实验8:日志分析与安全审计
1、创建日志文件
将以下内容保存为 /var/log/application.log:
2024-03-15 09:10:22 [INFO] User 'admin' authenticated from 192.168.1.100 (session: SESS-7X2G9P) |
vim /var/log/application.log |

2、设置权限
chmod 640 /var/log/application.log |

任务1.1:统计日志中所有错误事件的数量
grep -c "ERROR" /var/log/application.log |

任务1.2:提取所有包含IP地址的行(仅显示IP)
grep -Eo "([0-9]{1,3}\.){3}[0-9]{1,3}" /var/log/application.log |

任务2.1:查看SECURITY事件及其前后1行内容
grep -C 1 "SECURITY" /var/log/application.log |

任务3.1:找出所有涉及金额的记录(含$符号)
grep "\$[0-9]*" /var/log/application.log |

扩展任务:提取金额数值并计算总和(自己借助AI写出)
grep -oP '\$\K[\d,]+(\.\d{2})?' /var/log/application.log | awk '{gsub(/,/, ""); sum+=$0} END {printf "$%.2f\n", sum}' |

时间范围统计:统计09:10-09:15期间的事件数量
grep -c "09:1[0-5]" /var/log/application.log |

任务4.1:检测潜在暴力破解行为
grep "Failed login\|brute force" /var/log/application.log # 过滤有 Failed login 字段,或 brute force 字段的事件 |

任务5.1:分析脚本文件生成安全事件报告
echo "安全事件报告" > report.txt # 在 report.txt 文件中写入"安全事件报告"字段 |

