信息安全系统设计与实现学习笔记4
学习笔记 4 - 总结
知识点总结
1. 文件操作级别
-
硬件级别:
mkfs:格式化磁盘分区,为系统做好准备。fsck:检查和维修系统。- 碎片整理:压缩文件系统中的文件。
-
操作系统内核中的文件系统函数:
- 提供基本文件操作支持,例如:
kmkdir(),krmdir()kchair(),kgetCwd()klink(),kunlink()kchmod(),kchown(),kutime()kcreat(),kopen()kread(),kwrite()klseek(),kclose()keymlink(),kreadlink()kstat(),kfstat(),klatat()kopendir(),kreaddir()
- 提供基本文件操作支持,例如:
-
系统调用:
- 允许用户模式程序访问内核函数,如:
open(),read(),lseek(),close()
- 允许用户模式程序访问内核函数,如:
-
I/O库函数:
- 提供标准的I/O函数,例如:
fopen(),fread(),fwrite(),fseek(),fclose(),fflush()getc(),getchar(),putc(),putchar()gets(),fgets(),puts(),fputs()scanf(),fscanf(),printf(),fprintf(),sprintf()
- 提供标准的I/O函数,例如:
-
用户命令:
- 使用Unix/Linux命令执行文件操作,例如:
mkdir,rmdir,cd,pwd,ls,link,unlink,rm,cat,cp,mv,chmod, 等。
- 使用Unix/Linux命令执行文件操作,例如:
-
sh脚本:
- 用sh语言编写的程序,通过命令解释程序sh来执行。
2. 文件I/O操作
- 分为内核级别和用户级别的操作。
3. 低级别文件操作
-
分区:
- 将一个块存储设备分为多个逻辑单元,称为分区。
- 分区表位于MBR的第一个扇区,表中包含四个分区描述符。
-
EXT2文件系统:
- Linux默认的文件系统,包含引导块、超级块、块组描述符块、块位图、索引节点位图等。
4. 使用系统调用进行文件操作
-
系统调用和I/O库函数:
- 进程以内核模式和用户模式运行,系统调用允许进程进入内核模式执行高权限操作。
-
基础系统调用函数:
mkdir(),rmdir(),chdir(),getcwd(),access(),chmod(),chown(),link(),unlink(),symlink(),rename(),utime()等。
-
需要超级用户权限的调用:
mount,umount,mknod
-
常用系统调用:
stat(),open(),close(),read(),write()等。
5. 链接文件
-
链接允许不同的路径对应同一个文件,分为硬链接和软链接(符号链接)。
-
硬链接:共享相同的Inode和Block,适用于非目录文件。
-
软链接(符号链接):指向源文件的Inode,可以链接目录,可以跨分区。
最有收获的内容
我最有收获的内容是对硬链接和软链接的理解:
硬链接特征:
- 源文件和硬链接文件使用相同的 Inode 和 Block。
- 修改任意一个文件,另一个都改变。
- 删除任意一个文件,另一个都能使用。
- 硬链接标记不清,很难确认硬链接文件位置,不建议使用。
- 硬链接不能链接目录。
- 硬链接不能跨分区。
软链接特征:
- 软链接和源文件使用不同的 Inode 和 Block。
- 两个文件修改任意一个,另一个都改变。
- 删除软链接,源文件不受影响;删除源文件,软链接不能使用。
- 软链接没有实际数据,只保存源文件的 Inode,不论源文件多大,软链接大小不变。
- 软链接的权限是最大权限
lrwxrwxrwx,但是由于没有实际数据,最终访问时需要参考源文件权限。 - 软链接可以链接目录。
- 软链接可以跨分区。
- 软链接特征明显,建议使用软连接。
浙公网安备 33010602011771号