




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中南大学操作系统安全课程设计报告学生姓名代巍指导教师宋虹学院信息科学与工程学院专业班级信安1201班学号0909121615完成时间2015年1月15日
摘要本课程设计是实现一个多用户文件系统,通过具体的文件存储空间的管理、文件访问权限控制、目录结构和文件操作的实现。通过加深理解文件系统的内部功能及内部实现,掌握文件存储空间的管理,理解文件的物理结构,掌握目录结构的实现,掌握文件操作的实现,可以基本实现一个界面友好,功能完整的文件系统。本人在此次课程设计分组中承担了文件或目录操作,复制,粘贴,剪切,重命名加密,解密等任务。
目录摘要 21 概述 41.1 设计任务 41.2 设计目的 41.3 解决的问题 41.4 实验环境 42 总体设计 52.1 需求分析 52.2 设计思路 62.3 功能设计 62.3.1剪切,复制,粘贴功能 62.3.2重命名功能 62.3.3加密解密功能 73 详细设计 83.1 主要函数 83.2 关键算法 114 使用说明以及完成情况 124.1 简单的使用说明 124.2 存在的问题 155 总结 155.1 作品特色 155.2 经验教训 155.3 心得体会 16参考文献 17
概述设计任务采用C或C++编程语言,开发一个多用户安全的文件系统。基本要求如下:能实现对多种不同文件及目录的管理,包括对文件系统(包括文件和目录)读、写、创建、删除、打开、关闭、命名等操作;对不同的文件和目录能设置访问权限和操作权限;对不同的用户也设置访问权限和操作权限;根据用户和文件的权限来进行文件系统的操作。文件可以加密存储,可以进行一致性检测;审计日志能完成一种外部存储设备(如USB、移动硬盘)的空间动态添加到该文件系统中进行管理,存入该设备的文件是有权限用户。采用类似于Windows的窗口界面。设计目的作系统安全是整个计算机系统安全的重要基础,主要针对操作系统层面的安全进行剖析,是上层运行的重要保证。与计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。本课程设计的目的综合应用学生所学知识,建立安全系统的概念,理解和巩固操作系统基本理论、原理和方法,掌握安全操作系统开发的基本技能。解决的问题在操作系统安全层面上来讲,文件系统的安全是很重要的一环,如何保证用户的文件安全,是操作系统设计者需要考虑的问题。1.防止入侵者渗透操作系统并窃取或改动用户的文件。2.对文件系统进行分级管理,让不同级别的用户只能看到自己权限范围内的文件。3.设置规则对文件进行管理,并实现用户对文件的基本操作。实验环境实现环境:UbuntuLinux操作系统,LinuxGCC编译环境,QTCreator编译器开发语言:C语言总体设计本文件系统主要分为用户注册登录模块,授权管理模块,文件操作模块,以及审计相关模块。文件系统操作,包含格式化,显示文件(目录),创建文件等几个简单命令的实现,而且能完成超级块的读写,节点的读写等过程。文件系统多用户授权管理,通过写入一个超级用户账号(root),超级用户能注册不同等级的新用户,并赋予不同等级的权值,对应不同的权限。不同的用户权限能做的文件操作都有限制。另外,为了简单本文件系统未考虑文件共享、文件系统安全以及管道文件与设备文件等特殊内容。需求分析1.设计一个多用户多级目录文件管理系统。2.要设计多个实用命令并设置文件保护措施。3.设计一个较实用的用户界面,方便用户使用,界面要为用户提供足够的选择信息,不需用户打入冗长的命令4.功能简介:①多用户管理,多级目录形式。②基本的文件操作功能,如新建文件、打开文件、写入文件、关闭文件、读取文件等。③用户间文件的共享功能设计思路1.界面展示:列出目录文件,展示文件,以及是否当前用户文件,以及是否有权限进行操作。2.Inode节点主要存储:当前的地址、文件的长度、用户名、读写的权限、文件是否打开、文件的类型(0代表目录,1代表普通文件)、对应文件块的地址(即序号)、父节点块号、自己的当前节点的序号。3.文件选中:可获取文件对应Inode的索引、文件的名字、当前目录下的Inode和文件的对应关系4.控制类:得到用户的输入操作调用相应的操作。功能设计我负责的是文件或目录操作,复制,粘贴,剪切,重命名加密,解密等模块。采用的方法是将文件的描述符用界面点选来获取,并将此描述符参数传入对应的文件操作方法中去。主要还是以Qt封装好的QFileSystemModel为核心。2.3.1剪切,复制,粘贴功能通过界面设计,如果鼠标点选到了文件,就获取当前文件的路径。文件系统界面会提供“复制”,“剪切”按钮给用户,假如用户点选“剪切”按钮,则记录flag为1,点选“复制”按钮,则记录flag为2.之后用户做“粘贴”操作时,只需要在相应的路径点选“粘贴”按钮,根据flag来判断执行的是复制还是剪切,完成操作后,将flag清零,以便于下一次操作。2.3.2重命名功能通过界面点选,获取到当前路径,获取到最后一个“/”之后的内容,用户点选重命名按钮,提供文本框同时获取用户输入的值,将这个值替换“/”之后的内容。2.3.3加密解密功能Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符。三个字节有24个比特,对应于4个Base64单元,即3个字节需要用4个可打印字符来表示。它可用来作为电子邮件的传输编码。在Base64中的可打印字符包括字母A-Z、a-z、数字0-9,这样共有62个字符,此外两个可打印符号在不同的系统中而不同。利用Base64加密算法,将所需要加密的文件内容转码,将文件的明文转义生成新的文件或者覆盖源文件。解密时再通过该算法,将密文转回明文。不同用户只能依托于自身的权限,对自己的文件进行加密解密处理。
详细设计主要函数1.剪切复制粘贴剪切触发器复制触发器粘贴触发器2.重命名功能3.加密解密加密触发器解密触发器关键算法1.获取文件路径,该算法可用于对文件任何操作。当点选当前文件时,路径就被储存在变量index中,以备之后调用。QModelIndexindex=sTreeView->currentIndex();filePathSrc=sFileSystemModel->filePath(index);通过鼠标点选获取参数index,进而获取参数index的路径值,得到文件路径。2.Base64加密,采用Base64编码具有不可读性,即所编码的数据不会被人用肉眼所直接看到。具体是通过将文件进行base64编码,并储存在数组ba中,最后再将数组中的内容储存入文件。QByteArrayba=original.readAll().toBase64();QFiledest(filePath.append("_enc"));dest.write(ba);original.close();dest.close();3.Base64解密,可将编码后的文件转回原文。通过转换后的数据存入数组ba,再把数组中的内容以替换或追加的方式写入。QByteArrayba=QByteArray::fromBase64(file.readAll());dest.write(ba);file.close();dest.close();
使用说明和完成情况基本完成了一个功能完整的文件系统,采用Qt(基于C++)来完成界面编程,但是随之带来的问题是,如果要做界面,又要重新设计文件系统,就不能直接用Qt封装好的类来把自己设计的文件系统显示到界面上,对常见的文件系统,Qt都可以用QFileSystemModel装载到QTreeView、QTableView或者其他组件中完成显示。简单的使用说明1.登录后程序主界面2.执行复制粘贴操作,将test文件夹从mnt/share复制到temp文件夹中3重命名操作,将文件名test改为test13.加密解密操作,对test进行加密操作,得到转码文件,再进行解密得到了加密后的文件进行解密,得到解密后的文件存在的问题1.没有独立的磁盘管理功能,没有能从磁盘开辟空间,对文件进行定义,分区存储以及管理。2.加密解密方式过于简单,并没有实现完全的加密封锁。虽然进行了转码,能避免重要信息直接以明文的方式呈现,但是假如有入侵者获取了控制权,虽然他不能够获取文件的信息,但是他可以把这个文件直接删除,或者做一些损坏性的操作。这堆用户来说依然是不安全的。
总结作品特色将界面设计的作用发挥出来,例如用点选的方式获取文件路径,同时对文件的操作,也是通过按钮的方式,来对当前被选中的按钮操作。将界面设计和文件操作用传参数的方式完美结合,保证了整个系统的功能实现。功能完整,其中加密解密模块,日志模块,和用户授权模块,更是符合了操作系统安全的理念,基本上能保证文件的安全性。经验教训因为对文件系统、linux方面的了解实在太少,以至于第一遍写的文件操作模块无法和小组成员设计的其他模块进行调用和通信。进行了与相关的修改。但是还是很遗憾,虽然修改后的程序编译没有问题,但是运行时无法把操作和界面相结合的问题,与组员努力思考,参考各种资料,但是还是未能解决问题。最终我们将此模块换了一种思路,用一种比较简单的方式来实现文件操作。心得体会经过操作系统安全课程设计,对文件管理系统的实现,这样的系统稍微有点错误都会导致不可估算的代价,同样要把理论的东西用于实际,也是一个很大的挑战,我们刚开始开始主要运用了Linux下的C语言编程,但随后大部分是用了Qt界面编程。期间查阅了很多资料,得到了老师很多指导。期间遇到了好多问题也都一一解决,从这个过程中学到了很多理论课程所不能学到的知识。让我对操作系统的文件系统思想有了深刻的理解,同时对于编程的方法也有了更进一步的认知。在与小组成员合
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 铁路旅客运输服务铁路旅客运输服务质量规范72课件
- 双语客运值班员车站的管理组织课件
- 铁路工程安全技术石家庄铁路33课件
- 外墙测量方案模板范本
- ARM Cortex-M3嵌入式开发及应用教与学 课件 第3、4章 STM32F103学习平台;LED灯控制与KEIL MDK工程框架
- 市场营销咨询顾问合同范本
- 房屋修缮工程合同协议
- 宿州市重点中学2025届初三下学期第二次考试英语试题试卷含答案
- 暂定场地租赁合同书
- 南宁理工学院《人工神经网络》2023-2024学年第二学期期末试卷
- 大健康加盟项目计划书
- 幼儿园课程图景课程实施方案编制指南
- 气管狭窄患者的护理查房课件
- 大型客车驱动桥设计
- 钢筋挂篮计算书
- 扎钢机控制系统的MCGS界面控制设计
- 超声波探伤作业指导书
- 课程思政视域下小学音乐教学策略初探 论文
- 微风发电系统施工方案
- 机械设计说明书-精炼炉钢包车设计
- E+-H-Promass-80流量计基本操作步骤说明书
评论
0/150
提交评论