1.RPM包校验
<1>rpm -V 已安装的包名
<2>选项:
-V 校验制定RPM包中的文件(verify)
<3>说明:
<1>若没有显示任何内容,则证明包正常,则没有被修改过
<2>一旦有显示,则证明包被修改过,
且会在相应位置显示出被修改过的属性所代表的字母(.说明该属性没有被修改)
-----------------------------------------------------------------------------------------------------------------
验证内容中8个信息的具体内容如下:
S 文件大小是否改变
M 文件的类型或文件的权限(rwx)是否改变
5 文件MD5校验和是否改变(可以看成文件内容是否改变)
D 设备的主从代码是否改变
L 文件路径是否改变
U 文件的属主(所有者)是否改变
G 文件的属组是否改变
T 文件的修改时间是否改变
-----------------------------------------------------------------------------------------------------------------
文件类型:
c 配置文件(config file)
d 普通文档(documentation)
g “鬼”文件(ghost file),很少见,就是该文件不应该被这个rpm包包含
L 授权文件(license file)
r 描述文件(read me)
-----------------------------------------------------------------------------------------------------------------
<3>若出现鬼文件,有可能是出现漏洞或被攻击的可能
<4>该命令用于验证你的文件与官方提供的文件是否相同,从而判断系统文件是否被做过修改
2.RPM包中文件提取
<1>rpm2cpio 包全名 | cpio -idv .文件绝对路径
<2> --- rpm2cpio //将rpm包转换为cpio格式的命令
--- cpio //是一个标准工具,它用于创建软件档案文档和从档案文件中提取文件
<3>若由于误操作,不小心删除某些重要系统命令,如ls等,
可以通过rpm包提取文件的方法进行恢复
<4>命令: cpio 选项 < [文件|设备] //可以使用重定向也可以使用管道符
选项:
-i copy-in模式,还原
-d 还原时自动创建新目录
-v 显示还原过程
-----------------------------------------------------------------------------------------------------
<1>比如,不小心删除了ls命令
where is ls
mv /bin/ls /tmp //由于是做实验,不要真的删除,剪切就好
<2>此时就无法使用ls命令了
<3>接着可以使用cpio从rpm包中提取文件进行恢复
<4>首先 查询ls命令属于哪个软件包
rpm -qf /bin/ls
<5>接着造成误删除ls命令的假象
mv /bin/ls /tmp/
<6>提取rpm包中的ls命令到当前所在目录下
rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.el6.i686.rpm | cpio -idv ./bin/ls
.表示提取到当前目录,因此要考虑当前所在位置
./bin/ls表示我要提取这个文件
<7>把ls命令复制回/bin/目录,修复文件丢失