Linux基础大作业
Linux基础大作业
实验1:文件目录结构与基本命令操作
1、在/tmp目录下创建如下目录结构:
/tmp/test/ |
命令解释:
mkdir /tmp/test #创建主目录 /tmp/test |

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

3、查找/tmp目录下所有.txt文件并显示详细信息
find /tmp -type f -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 #将file3.txt移动到dir1目录的同时将其重命名为newfile.txt |

实验2:用户与组管理
1、创建用户user1、user2和组group1
groupadd group1 #创建组group1 |

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

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

4、验证user1可以在/shared中创建文件,user3(非组成员)不能访问
useradd -m user3 #创建user3用于测试 |

ls -l /shared #验证文件创建成功 |

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

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

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

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

实验4:SUID权限应用
1、创建脚本/usr/local/bin/showfile,内容为显示/etc/shadow文件内容
sudo vi /usr/local/bin/showfile #编辑/usr/local/bin/showfile为文件写入脚本内容 |


2、设置脚本所有者为root并添加SUID权限
sudo chown root:root /usr/local/bin/showfile #将脚本所有者设置为 root |

3、使用普通用户执行该脚本验证权限提升
sudo useradd user1 #新建用户user1 |
4、实验完成后移除SUID权限
sudo chmod u-s /usr/local/bin/showfile #移除 SUID 权限 |
要求:对脚本内容进行注释
#showfile |
实验5:文件属性保护
1、创建重要配置文件/etc/important.conf
sudo touch /etc/important.conf #创建重要配置文件/etc/important.conf |

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

3、尝试修改和删除文件验证保护效果
echo "111" | sudo sh -c 'cat > /etc/important.conf' #尝试修改文件 |

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

实验6:sudo权限配置
1、创建用户admin和组sudoadmin
sudo useradd admin #创建用户admin,指定bash作为默认shell |

2、配置sudo使sudoadmin组成员可以执行所有命令无需密码
sudo visudo #使用visudo安全编辑添加%sudoadmin ALL=(ALL) NOPASSWD:ALL |

3、将admin用户加入sudoadmin组
sudo usermod -aG sudoadmin admin #将admin用户添加到sudoadmin组 |
4、验证admin用户可以使用sudo执行特权命令
su - admin #切换到admin用户 |
实验7:综合权限管理
1、创建目录/project,属组为devteam
sudo mkdir /project #创建目录/project |
2、设置权限:组成员可读写,其他人只读
sudo chmod 750 /project #组成员可读写,其他人只读 |
3、设置SGID权限使新建文件自动继承组权限
sudo chmod 2770 /project 设置SGID权限使新建文件自动继承组权限 |
4、创建用户dev1、dev2并加入devteam组
sudo useradd -G devteam dev1 #创建dev1加入devteam组 |
5、验证dev1创建的文件dev2可以编辑
su - dev1 #切换到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) |
sudo vi /var/log/application.log #打开编辑/var/log/application.log写入内容 |

2、设置权限
chmod 640 /var/log/application.log |
任务1.1:统计日志中所有错误事件的数量
grep "\[ERROR\]" /var/log/application.log | wc -l #统计[ERROR]/var/log/application.log中出现了多少次 |
任务1.2:提取所有包含IP地址的行(仅显示IP)
grep -Eo "([0-9]{1,3}\.){3}[0-9]{1,3}" /var/log/application.log #在/var/log/application.log中查找所有包含ip规则内容的行 |

任务2.1:查看SECURITY事件及其前后1行内容
grep -A 1 -B 1 "\[SECURITY\]" /var/log/application.log #-A 1 -B 筛选[SECURITY]前后一行 |

任务3.1:找出所有涉及金额的记录(含$符号)
grep "\$" /var/log/application.log #筛选包含$的行 |

扩展任务:提取金额数值并计算总和
grep "\$" /var/log/application.log | grep -Eo "[0-9]+\.[0-9]+" | awk '{sum += $1} END {print sum}' #筛选包含$的行再提取其中包含数字的部分再逐行处理累加提取出来的数字输出sum总和 |
时间范围统计:统计09:10-09:15期间的事件数量
awk '/2024-03-15 09:1[0-5]:[0-5][0-9]/ {count++} END {print count}' /var/log/application.log #逐行处理/var/log/application.09:10-09:15内的文件count加一最后输出总和 |

任务4.1:检测潜在暴力破解行为
grep "Failed login\|brute force" /var/log/application.log |

任务5.1:分析脚本文件生成安全事件报告
echo "安全事件报告" > report.txt #创建report.txt文件并写入安全事件报告 |





