陈东鑫实验二:passwd权限控制与细粒度安全管理

需积分: 0 0 下载量 27 浏览量 更新于2024-08-04 收藏 637KB DOCX 举报
本篇实验报告是关于计算机系统安全中的细粒度访问控制和root能力位安全应用,由学生陈东鑫(学号1190201308)于2021年12月1日在班级1903202完成。实验二的主要内容围绕passwd程序进行深入分析,模拟了系统中密码修改的机制,通过自主访问控制系统实现对用户权限的精细管理。 实验的核心任务是理解passwd程序的工作原理,该程序允许用户更改自己的密码。在源代码中,定义了一些头文件来支持操作系统的功能,如文件I/O、用户信息处理以及系统状态控制。函数`changePassword()`是关键部分,它接收两个参数:要更改密码的用户名和新的密码。 首先,函数尝试打开名为"aaa"的文件,并以读写模式("r+")获取文件指针。如果文件打开失败,会捕获错误并输出。然后,使用`getline()`函数逐行读取文件内容,寻找与指定用户名匹配的行。如果找到匹配,它会保留用户名部分,将空格后的密码部分替换为新的密码。为了保持原有行的结构,剩余行内容被暂存到`buffer`中,接着跳回文件的起始位置,用新的密码和用户名重写这一行。 在这个过程中,实验强调了细粒度权限管理的重要性,即仅授权特定用户修改其自身的密码,防止未经授权的修改。同时,通过模拟passwd程序,学生能够理解如何利用标准库函数和文件操作来实现这样的安全控制,这对于理解和保护操作系统中的敏感数据具有实际意义。 这个实验让学生深入了解了如何在passwd这类实用程序中实施访问控制,特别是如何通过源代码级别的操作来确保只有拥有者才能更改密码,从而增强了他们对系统安全的实践能力。