操作系统安全课设-安全文件系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中南大学
操作系统安全
课程设计报告
学生姓名代巍
指导教师宋虹
学院信息科学与工程学院
专业班级信安1201班
学号 0909121615 完成时间 2015年1月15日
摘要
本课程设计是实现一个多用户文件系统,通过具体的文件存储空间的管理、文件访问权限控制、目录结构和文件操作的实现。通过加深理解文件系统的内部功能及内部实现,掌握文件存储空间的管理,理解文件的物理结构,掌握目录结构的实现,掌握文件操作的实现,可以基本实现一个界面友好,功能完整的文件系统。
本人在此次课程设计分组中承担了文件或目录操作,复制,粘贴,剪切,重命名加密,解密等任务。
目录
摘要 (2)
1概述 (4)
1.1设计任务 (4)
1.2设计目的 (4)
1.3解决的问题 (4)
1.4实验环境 (4)
2总体设计 (5)
2.1需求分析 (5)
2.2设计思路 (6)
2.3功能设计 (6)
2.3.1剪切,复制,粘贴功能 (6)
2.3.2重命名功能 (7)
2.3.3加密解密功能 (7)
3详细设计 (8)
3.1主要函数 (8)
3.2关键算法 (11)
4使用说明以及完成情况 (13)
4.1简单的使用说明...................................................................... 错误!未定义书签。
4.2存在的问题 (15)
5总结 (16)
5.1作品特色 (16)
5.2经验教训 (16)
5.3心得体会 (16)
参考文献 (17)
1概述
1.1设计任务
采用C或C++编程语言,开发一个多用户安全的文件系统。基本要求如下:
1.能实现对多种不同文件及目录的管理,包括对文件系统(包括文件和目录)读、
写、创建、删除、打开、关闭、命名等操作;
2.对不同的文件和目录能设置访问权限和操作权限;
3.对不同的用户也设置访问权限和操作权限;根据用户和文件的权限来进行文件
系统的操作。
4.文件可以加密存储,可以进行一致性检测;
5.审计日志
6.能完成一种外部存储设备(如USB、移动硬盘)的空间动态添加到该文件系统
中进行管理,存入该设备的文件是有权限用户。
7.采用类似于Windows的窗口界面。
1.2设计目的
作系统安全是整个计算机系统安全的重要基础,主要针对操作系统层面的安全进行剖析,是上层运行的重要保证。与计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。本课程设计的目的综合应用学生所学知识,建立安全系统的概念,理解和巩固操作系统基本理论、原理和方法,掌握安全操作系统开发的基本技能。
1.3解决的问题
在操作系统安全层面上来讲,文件系统的安全是很重要的一环,如何保证用户的文件安全,是操作系统设计者需要考虑的问题。
1.防止入侵者渗透操作系统并窃取或改动用户的文件。
2.对文件系统进行分级管理,让不同级别的用户只能看到自己权限范围内的文件。
3.设置规则对文件进行管理,并实现用户对文件的基本操作。
1.4实验环境
实现环境:Ubuntu Linux操作系统,Linux GCC编译环境,QT Creator编译器
开发语言:C语言
2总体设计
本文件系统主要分为用户注册登录模块,授权管理模块,文件操作模块,以及审计相关模块。
文件系统操作,包含格式化,显示文件(目录),创建文件等几个简单命令的实现,而且能完成超级块的读写,节点的读写等过程。
文件系统多用户授权管理,通过写入一个超级用户账号(root),超级用户能注册不同等级的新用户,并赋予不同等级的权值,对应不同的权限。不同的用户权限能做的文件操作都有限制。另外,为了简单本文件系统未考虑文件共享、文件系统安全以及管道文件与设备文件等特殊内容。
2.1需求分析
1.设计一个多用户多级目录文件管理系统。
2.要设计多个实用命令并设置文件保护措施。
3.设计一个较实用的用户界面,方便用户使用,界面要为用户提供足够的选择信息,
不需用户打入冗长的命令
4. 功能简介:
①多用户管理,多级目录形式。
②基本的文件操作功能,如新建文件、打开文件、写入文件、关闭文件、读取文件等。
③用户间文件的共享功能
2.2设计思路
1.界面展示:列出目录文件,展示文件,以及是否当前用户文件,以及是否有权限进行操作。
2.Inode节点主要存储:当前的地址、文件的长度、用户名、读写的权限、文件是否打开、文件的类型(0代表目录,1代表普通文件)、对应文件块的地址(即序号)、父节点块号、自己的当前节点的序号。
3.文件选中:可获取文件对应Inode的索引、文件的名字、当前目录下的Inode和文件的对应关系
4.控制类:得到用户的输入操作调用相应的操作。
2.3功能设计
我负责的是文件或目录操作,复制,粘贴,剪切,重命名加密,解密等模块。采用的方法是将文件的描述符用界面点选来获取,并将此描述符参数传入对应的文件操作方法中去。主要还是以Qt封装好的QFileSystemModel为核心。
2.3.1剪切,复制,粘贴功能
通过界面设计,如果鼠标点选到了文件,就获取当前文件的路径。文件系统界面会提供“复制”,“剪切”按钮给用户,假如用户点选“剪切”按钮,则记录flag为1,点选“复制”按钮,则记录flag为2.之后用户做“粘贴”操作时,只需要在相应的路径点选“粘贴”按钮,根据flag来判断执行的是复制还是剪切,完成操作后,将flag清零,以便于下一次操作。