
Linux 验证、数字证书、RPM包中文件的提取
发布日期:2021-05-07 15:14:52
浏览次数:7
分类:原创文章
本文共 1815 字,大约阅读时间需要 6 分钟。
目录
验证、数字证书、RPM包中文件的提取
验证
- 基本命令
[root@localhost ~]# rpm –Va
- 选项:
- -Va 校验本机已经安装的所有软件包
root@localhost ~]# rpm –V 已安装的包名
- 选项:
- -V 校验指定 RPM 包中的文件(verify)
[root@localhost ~]# rpm –Vf 系统文件名
- 选项:
- -Vf 校验某个系统文件是否被修改
- 验证举例
- 出现了提示信息,我们来解释下最前面共有 8 个信息内容,是表示验证内容的。文件名前面的 c是表示这是个配置文件(configuration)。最后是文件名。那么验证内容中的 8 个信息的具体内容如下:
- S 文件大小是否改变
- M 文件的类型或文件的权限(rwx)是否被改变
- 5 文件 MD5 校验和是否改变(可以看成文件内容是否改变)
- D 设备的主从代码是否改变
- L 文件路径是否改变
- U 文件的属主(所有者)是否改变
- G 文件的属组是否改变
- T 文件的修改时间是否改变apache 配置文件的文件类型是 c,那么还有哪些文件类型呢?
- c 配置文件(config file)
- d 普通文档(documentation)
- g “鬼”文件(ghost file),很少见,就是该文件不应该被这个 RPM 包包含
- l 授权文件(license file)
- r 描述文件(read me)
数字证书
- 刚刚的校验方法只能对已经安装的 RPM 包中的文件进行校验,但是如果 RPM 包本身就被动过手脚,那么校验就不能解决问题了。我们就必须使用数字证书验证了。
- 数字证书有如下特点:
- 首先必须找到原厂的公钥文件,然后进行安装
- 再安装 RPM 包是,会去提取 RPM 包中的证书信息,然后和本机安装的原厂证书进行验证
- 如果验证通过,则允许安装;如果验证不通过,则不允许安装并警告
- 数字证书位置
- 数字证书导入
[root@localhost ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
- 选项:
- --import 导入数字证书
- 如何查询系统中安装好的数字证书呢?命令如下:
[root@localhost ~]# rpm -qa | grep gpg-pubkeygpg-pubkey-c105b9de-4e0fd3a3
RPM包中文件的提取
cpio命令
- cpio 命令主要有三种基本模式:
- “-o”模式指的是 copy-out 模式,就是把数据备份到文件库中;
- “-i”模式指的是 copy-in 模式,就是把数据从文件库中恢复;
- “-p”模式指的是复制模式,就是不把数据备份到 cpio 库中,而是直接复制为其他文件。命令如下:
- 举几个例子,先来看看使用 cpio 备份数据的方法,命令如下:
- 再来看看如何恢复 cpio 的备份数据,命令如下:
- 但是如果查看下当前目录/root,会发现没有生成 etc 目录。
- 这是因为备份是/etc 目录使用的是绝对路径,所以恢复的数据直接恢复到了/etc 系统目录中,而没有生成在/root/etc 中。
- 在 CentOS5.x 的版本中,是可以利用上面的命令备份与恢复指定的文件。但是到 CentOS6.x 当中,需要更加严谨。
- 如果备份时使用绝对路径,则恢复的数据会直接到绝对路径指定的路径中
- 如果需要把数据恢复到当前目录中,则需要使用相对路径
- 例如:
- 最后来演示一下 cpio 命令的“-p”复制模式,命令如下:
提取 RPM 包中文件
- 举个例子,现在我假设把系统中的/bin/ls 命令不小心误删除了,那么我可以修复回来吗?
- 这时有两种方法修复
- 使用--force 选项覆盖安装一遍 coreutils-8.4-19.el6.i686 包
- 使用 cpio 命令提取出/bin/ls 命令文件,再把它拷贝到对应位置就可以了。
- 不过我是怎么知道/bin/ls命令是属于 coreutils-8.4-19.el6.i686 这个软件包的呢?还记得-qf 选项吗?命令如下:
[root@localhost ~]# rpm -qf /bin/lscoreutils-8.4-19.el6.i686#查看 ls 文件属于哪个软件包
- cpio 命令提取出 ls 命令文件,然后拷贝到对应位置,命令如下:
【注】:参考尚硅谷沈超老师教程
发表评论
最新留言
很好
[***.229.124.182]2025年04月06日 21时17分28秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
vue项目如何区分开发、生产和测试环境
2019-03-04
css取消双击选中文字
2019-03-04
LeetCode 116填充每个节点的下一个右侧结点指针
2019-03-04
C++小笔记——function绑定重载函数、私有继承用的条件
2019-03-04
最近一些算法题的总结
2019-03-04
2021-4-28【PTA】【L2-1 包装机 (25 分)】
2019-03-04
2021-5-2【指针】【作业】【指针代替下标进行数组编程】
2019-03-04
Arduino mega2560+MPU6050利用加速度值控制舵机
2019-03-04
MPU9250九轴姿态解算开发小结
2019-03-04
pycharm+python+MS SQLSERVER 实战2、实现爬虫程序。
2019-03-04
判断字符是否出现
2019-03-04
C 语言restrict 关键字的使用浅谈
2019-03-04
深入理解数组指针与指针数组的区别
2019-03-04
VisualStduio2019 C++如何重定向(用文件输入输出)
2019-03-04
iOS客户端与PHP服务端的简单交互
2019-03-04
图像Exif Orientation
2019-03-04
Python的异常处理
2019-03-04
Kubernetes(k8s)的调度器详细介绍
2019-03-04
Linux的IP详解
2019-03-04