本文介绍了如何通过rpm命令检查系统完整性,以及如何使用rpm2cpio和cpio命令来提取和还原文件。文章详细介绍了rpm命令的-Va选项以及输出格式,以及cpio命令的常用选项和挂载命令。此外,文章还提供了一个文件提取和还原的案例,展示了如何使用这些命令来修复文件丢失的问题。
系统完整性可以通过 rpm 自带的 -Va 来校验检查所有的 rpm 软件包,查看哪些命令是否被替换了:
./rpm -Va > rpm.log
如果一切均校验正常将不会产生任何输出,如果有不一致的地方,就会显示出来,输出格式是 8 位长字符串,每个字符都用以表示文件与 RPM 数据库中一种属性的比较结果 ,如果是. (点) 则表示测试通过。
验证内容中的 8 个信息的具体内容如下:
- S文件大小是否改变
- M文件的类型或文件的权限(rwx)是否被改变
- 5文件 MD5 校验是否改变(可以看成文件内容是否改变)
- D设备中,从代码是否改变
- L文件路径是否改变
- U文件的属主(所有者)是否改变
- G文件的属组是否改变
- T文件的修改时间是否改变
命令替换
rpm2cpio 包全名 | cpio -idv .文件绝对路径
- rpm2cpio 将 rpm 包转换为 cpio 格式的命令
- cpio 是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件
Cpio 选项 < [文件|设备]
- i:copy-in 模式
- d:还原时自动新建目录
- v:显示还原过程
挂载命令 rpm 包:
mkdir /mnt/chrom/
建立挂载点
mount -t iso9660 /dev/cdrom /mnt/cdrom/
挂载光盘
mount/dev/sr0 /mnt/cdrom/
文件提取还原案例:
rpm -qf /bin/ls
查询ls命令属于哪个软件包,
mv /bin/ls /tmp
先把 ls 转移到 tmp 目录下,造成 ls 命令丢失的假象
rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.el6.i686.rpm | cpio -idv ./bin/ls
提取 rpm 包中 ls 命令到当前目录的 /bin/ls 下
cp /root/bin/ls /bin/
把 ls 命令复制到 /bin/ 目录 修复文件丢失