为了防止文件共享可能会导致文件被破坏或未经核准的用户修改文件,文件系统必须控制用户对文件的存取,即解决对文件的读、写、执行的许可问题。为此,必须在文件系统中建立相应的文件保护机制。

文件保护通过口令保护、加密保护和访问控制等方式实现。其中,口令保护和加密保护是为了防止用户文件被他人存取或窃取,而访问控制则用于控制用户对文件的访问方式。

访问类型

对文件的保护可以从限制对文件的访问类型中出发。可加以控制的访问类型主要有以下几种:

  • 读:从文件中读。
  • 写:向文件中写。
  • 执行:将文件装入内存并执行。
  • 添加:将新信息添加到文件结尾部分。
  • 删除:删除文件,释放空间。
  • 列表清单:列出文件名和文件属性。

此外还可以对文件的重命名、复制、编辑等加以控制。这些高层的功能可以通过系统程序调用低层系统调用来实现。保护可以只在低层提供。例如,复制文件可利用一系列的读请求来完成。这样,具有读访问用户同时也具有复制和打印的权限了。

访问控制

解决访问控制最常用的方法是根据用户身份进行控制。而实现基于身份访问的最为普通的方法是为每个文件和目录增加一个访问控制列表(Access-Control List, ACL),以规定每个用户名及其所允许的访问类型。

这种方法的优点是可以使用复杂的访同方法。其缺点是长度无法预期并且可能导致复杂的空间管理,使用精简的访问列表可以解决这个问题。

精简的访问列表釆用拥有者、组和其他三种用户类型。

  • 拥有者:创建文件的用户。
  • 组:一组需要共享文件且具有类似访问的用户。
  • 其他:系统内的所有其他用户。

这样只需用三个域列出访问表中这三类用户的访问权限即可。文件拥有者在创建文件时,说明创建者用户名及所在的组名,系统在创建文件时也将文件主的名字、所属组名列在该文件的FCB中。用户访问该文件时,按照拥有者所拥有的权限访问文件,如果用户和拥有者在同一个用户组则按照同组权限访问,否则只能按其他用户权限访问。UNIX操作系统即釆用此种方法。

口令和密码是另外两种访问控制方法。

口令指用户在建立一个文件时提供一个口令,系统为其建立FCB时附上相应口令,同时告诉允许共享该文件的其他用户。用户请求访问时必须提供相应口令。这种方法时间和空间的开销不多,缺点是口令直接存在系统内部,不够安全。

密码指用户对文件进行加密,文件被访问时需要使用密钥。这种方法保密性强,节省了存储空间,不过编码和译码要花费一定时间。

口令和密码都是防止用户文件被他人存取或窃取,并没有控制用户对文件的访问类型。

注意两个问题:

  • 现代操作系统常用的文件保护方法,是将访问控制列表与用户、组和其他成员访问控制方案一起组合使用。
  • 对于多级目录结构而言,不仅需要保护单个文件,而且还需要保护子目录内的文件, 即需要提供目录保护机制。目录操作与文件操作并不相同,因此需要不同的保护机制。

操作系统知识点总结(十四)文件保护:文件访问类型和访问控制相关推荐

  1. 【操作系统】文件管理(四)—— 文件的保护和共享

    [操作系统]文件管理(四)-- 文件的保护和共享 一.文件保护 1. 口令保护 2. 加密保护 3. 访问控制 4. 文件保护的总结 二.文件共享 1. 基于索引结点的共享方式(硬链接) 2. 基于符 ...

  2. Python编程基础:第三十四节 文件移动Move a File

    第三十四节 文件移动Move a File 前言 实践 前言 当我们需要将一个文件/文件夹移动到另一个指定路径时,就需要用到shutil.move()函数,该函数需要指定两个参数shutil.move ...

  3. python学习[第十四篇] 文件的输入与输出

    python学习[第十四篇] 文件的输入与输出 标准文件类型 一般来说只要程序一执行,就会访问3个文件: 标准输入(键盘) stdin 标准输出(显示器缓冲区) stdout 默认输出到屏幕 标准错误 ...

  4. 你管这叫操作系统源码(十四)

    文章目录 shell程序跑起来了 操作系统启动完毕 总结 shell程序跑起来了 shell只是个标准,具体的是实现有很多,比如Ubuntu18.04上,具体的shell实现是bash: ~$ ech ...

  5. 【2021-07-31 更新】【梳理】简明操作系统原理 第十九章 身份认证和访问控制(docx)

    配套教材: Operating Systems: Three Easy Pieces Remzi H. Arpaci-Dusseau Andrea C. Arpaci-Dusseau Peter Re ...

  6. 操作系统(三十四)覆盖和交换

    3.3 覆盖和交换 在上一节中我们提到操作系统在内存管理方面的作用,其中有一个作用是内存空间的扩展,实现这一功能的就是覆盖和交换技术. 3.3.1 覆盖 早期的计算机内存很小,经常会出现内存大小不够的 ...

  7. 三十四 操作文件和目录

    如果我们要操作文件.目录,可以在命令行下面输入操作系统提供的各种命令来完成.比如dir.cp等命令. 如果要在Python程序中执行这些目录和文件的操作怎么办?其实操作系统提供的命令只是简单地调用了操 ...

  8. 十四、Python第十四课——文件和异常

    (请先看这篇文章:https://blog.csdn.net/GenuineMonster/article/details/104495419) 如果看完这篇博文,你的问题还是没有解决,那么请关注我的 ...

  9. C#学习笔记【十四】—— 文件操作

    14.1文件读写方式 下面的类用于浏览文件系统和执行操作,比如移动,复制和删除文件System.MarshalByRefObject这个是.NET类中用于远程操作的基对象类,它允许在应用程序域之间编组 ...

  10. 十四、文件和目录——文件时间和utime函数

    14.1 文件时间 存在于 stat 结构体中 14.2 文件时间函数 14.2.1 介绍 utime(修改文件的存取时间和更改时间) 相关函数 utimes,stat 1 #include < ...

最新文章

  1. python基础一入门必备知识-python基础教程#菜鸟也能看懂的超简单入门必备知识...
  2. OpenInventor开发笔记:解决FaceSet的填充问题
  3. syslog记录history历史记录
  4. CSS鼠标响应事件经过、移动、点击示例介绍
  5. luoguP4206 [NOI2005]聪聪与可可 期望概率DP
  6. python实现一个简单的加法计算器_Python简易项目 加减计算器的实现
  7. 写给嵌入式方向的某些同学 - 基于WINCE系统的程序开发[不完整版]
  8. [整理]flex,datagrid数值列排序
  9. 光通信仿真软件Optisystem 15.0 学习版
  10. 二进制文件vscode_最强编辑器 VSCode 系列之插件推荐【不定期更新】
  11. vue cil安装axios
  12. 微信小程序开发实例——人脸识别开放平台
  13. Appium+python自动化(三十八) - Appium自动化测试框架综合实践 - 框架简介-助你冲击高薪,迎娶白富美(超详解)...
  14. Go 学习笔记 Go 第三方库之 viper(解析配置文件、热更新配置文件)
  15. 终止被占用的端口,localhost:8000
  16. 新技术带来产业格局周期波动的3个阶段(以智能汽车领域为例分析)
  17. 阿里云PCDN新亮点 自动调用HTTPDNS 解决域名劫持困扰
  18. python的pandas库的pd.read_excel()常用解析
  19. 考研学校的爬虫(自己写的可能会有点菜
  20. 微信公众号 php 导航,最新PHP微信公众号导航源码

热门文章

  1. 橘子学设计模式之原型模式
  2. 人工智能与大数据就业前景_人工智能就业方向及发展前景
  3. 马哥教育——第十四周作业
  4. 设计师的色彩理论,你知道不同色彩的秘密吗?
  5. 程序员必备的十个工具
  6. UDP聊天室(代码)
  7. excel自动求和_excel自动求和你会吗?更改姓名自动算出总分,三个函数轻松搞定...
  8. 2021自学考试计算机应用基础,2021年高等教育自学考试计算机应用基础试题及答案.doc...
  9. bam文件测序深度统计-bamdst
  10. 考勤统计表sql 某个项目在某个月的考勤统计