Linux系列(33)- rpm命令管理之RPM包校验提取(5)
校验
格式
- rpm -V 已安装的包名
- 选项:
- — -V:校验指定RPM包中的文件(verify)
例子
- rpm -V httpd 后, 无任何提示, 代表该文件没有被做任何修改
- # 判断本地的apache 与官方给出的是否一致, 从而判断是否被人修改
- 修改httpd.conf配置文件后
- 提示 : S.5....T. c /etc/httpd/conf/httpd.conf
- 红字8位分别代表验证内容不同信息,有变化就显示,没变化以点“.”表示变动
- 蓝字c代表验证内容文件的文件类型
内容中信息校验 | 文件类型 | ||
S | 文件大小是否变化 |
c (config file) |
配置文件 |
M | 文件的类型或文件的权限(rwx)是否改变 |
d (documentation) |
普通文件 |
5 | 文件MD5校验是否改变(可以理解为文件内容是否改变) |
g (ghost file) |
"鬼"文件, 很少见, 就是该文件不应该被这个RPM包包含,一般为病毒 |
D | 设备的主从代码是否改变 |
L (license file) |
授权文件 |
L | 文件路径是否改变 |
r (read me) |
描述文件 |
U | 文件的属主(所有者)是否改变 | ||
G | 文件的属组是否改变 | ||
T | 文件的修改日期是否改变 |
MD5校验
- 用来校验文件的完整性(文件内容是否被改变)
- 例如, 在官网下载的游戏, 官方会给出MD5校验码, 将下载的游戏通过专用的MD5校验工具校验后生成一份MD5校验码, 对比两份校验码 是否一致, 不一致则说明,下载的文件可能丢包, 可能文件损坏, 可能被其他人动过手脚一直木马等
RPM 包中文件提取
格式:
rpm2cpio 包全名 | cpio -idv .文件绝对路径
命令解析:
- rpm2cpio 包全名
- # — rpm2cpio:将rpm包转换为cpio格式的命令
- # — cpio :是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件
- # 由于 cpio 命令自身不知道从何处来提取文件, 所以需要用管道符来告知提取的位置
- 👆管道符前半部分:从哪边提取;管道符后半部分:怎么提取,提取方式
- cpoi 选项 < [文件|设备]
- 选项:
- -i : copy-in 模式, 还原
- -d : 还原时自动新建目录
- -v : 显示还原过程
例子
rpm -qf /bin/ls :查询ls 命令属于哪个软件包
mv /bin/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/目录, 修复文件丢失