# 5.5 文件共享与保护 ## 一、文件共享 ### 1.1 什么是文件共享 **文件共享**:多个用户或进程共同使用同一个文件。 ### 1.2 共享的好处 - **节省存储空间**:多个用户共享同一文件 - **便于协作**:多个用户共同编辑文件 - **数据一致性**:共享同一数据源 ### 1.3 共享的实现方式 #### 基于索引节点的共享(硬链接) **实现**: - 多个目录项指向同一个索引节点 - 索引节点中有链接计数 **特点**: - 文件只有一个物理副本 - 删除文件时,链接计数减1 - 链接计数为0时,才真正删除文件 **优点**: - 节省空间 - 访问速度快 **缺点**: - 不能跨文件系统 - 不能链接目录(防止循环) #### 基于符号链的共享(软链接) **实现**: - 创建新的文件(链接文件) - 链接文件中存放被链接文件的路径 **特点**: - 链接文件和被链接文件是不同的文件 - 访问时需要根据路径查找 **优点**: - 可以跨文件系统 - 可以链接目录 **缺点**: - 需要额外的空间存储路径 - 访问速度慢(需要多次查找) - 被链接文件删除后,链接失效 ### 1.4 硬链接与软链接的比较 | 特性 | 硬链接 | 软链接 | |-----|--------|--------| | 实现方式 | 多个目录项指向同一索引节点 | 新建文件存放路径 | | 文件类型 | 普通文件 | 特殊文件 | | 跨文件系统 | 否 | 是 | | 链接目录 | 否 | 是 | | 空间占用 | 少 | 多 | | 访问速度 | 快 | 慢 | | 原文件删除 | 仍可访问 | 链接失效 | | 链接计数 | 增加 | 不变 | --- ## 二、文件保护 ### 2.1 什么是文件保护 **文件保护**:防止文件被非法访问或破坏。 ### 2.2 保护级别 **系统级保护**: - 防止未授权用户进入系统 - 如:用户登录、密码 **用户级保护**: - 对不同用户设置不同权限 - 如:文件所有者、组、其他用户 **文件级保护**: - 设置文件的访问权限 - 如:读、写、执行 ### 2.3 访问控制 #### 访问控制列表(ACL) **思想**: - 为每个文件建立一个访问控制列表 - 列表中记录每个用户对该文件的访问权限 **实现**: ``` 文件A的ACL: - 用户1:读、写 - 用户2:读 - 用户3:无 - ... ``` **优点**: - 控制精细 **缺点**: - 列表可能很长 - 管理复杂 #### 访问权限矩阵 **思想**: - 矩阵的行表示用户 - 矩阵的列表示文件 - 矩阵元素表示权限 **实现**: ``` 文件A 文件B 文件C 用户1 RWX R RW 用户2 R RWX R ... ``` **缺点**: - 矩阵可能很大 - 稀疏矩阵 #### 简化访问控制(UNIX) **思想**: - 将用户分为三类:所有者、组、其他 - 每类设置读、写、执行权限 **权限表示**: - r:读 - w:写 - x:执行 **权限设置**: ``` -rwxr-xr-x user group file | | | | | 其他用户权限 | 组权限 所有者权限 ``` **数字表示**: - r = 4 - w = 2 - x = 1 **例子**: - 755 = rwxr-xr-x - 644 = rw-r--r-- ### 2.4 其他保护机制 **口令保护**: - 设置文件口令 - 访问时需要输入口令 **加密保护**: - 对文件内容加密 - 需要密钥才能解密 **审计**: - 记录文件的访问日志 - 用于事后追踪 --- ## 三、考研重点 1. **文件共享**: - 基于索引节点的共享(硬链接) - 基于符号链的共享(软链接) - 硬链接与软链接的比较 2. **文件保护**: - 访问控制列表(ACL) - 访问权限矩阵 - 简化访问控制(UNIX权限) - 口令保护、加密保护 --- *下一节:5.6 文件系统层次结构*