[命令] Linux 命令 rpm2cpio 和 cpio (提取 RPM 文件 (安装包) 里的子文件)

内容一:rpm2cpio 命令和 cpio 命令的减价

1.1 rpm2cpio 命令

将 RPM 文件 (安装包) 转换为 cpio 格式

1.2 cpio 命令

从 cpio 格式中的 RPM 文件 (安装包) 中提取子文件

内容二:rpm2cpio 命令和 cpio 命令的格式

# rpm2cpio <RPM file (installation package)> | cpio -idv <absolute path of the file>

内容三:cpio 命令的选项

1) -i 即 copy-in 模式,还原 RPM 文件 (安装包) 里的子文件
2) -d 在还原的过程中创建对应的目录
3) -v 显示还原的过程

内容四:rpm2cpio 命令的案例 (安装 RPM 文件 (安装包))

4.1 拷贝要安装的 RPM 文件 (安装包) 到当前目录

(步骤略)

4.2 创建用于提取 RPM 文件 (软件包) 的目录

# mkdir bash

(补充:这里以创建 bash 目录为例)

4.3 进入用于提取 RPM 文件 (软件包) 的目录

# cd bash

(补充:这里以进入 bash 目录为例)

4.4 提取 RPM 文件 (安装包) 里的子文件

# rpm2cpio ../bash-4.3-83.23.1.x86_64.rpm | cpio -ivd

(补充:这里以提取 bash-4.3-83.23.1.x86_64.rpm RPM 文件 (安装包) 为例)

4.5 显示提取 RPM 文件 (安装包) 子文件后的目录

# ls
bin etc usr

4.6 在当前目录将提取的子文件拷贝到 /bin 目录

# cp -rpv bin/* /bin
'bin/bash' -> '/bin/bash'
'bin/sh' -> '/bin/sh'

[步骤] audit 日志时间格式的转换

步骤一:创建用于 audit 转换日志时间格式的脚本

# vim time_format_conversion.pl

创建以下内容:

s/(1\d{9})/localtime($1)/e

(补充:这里以创建名为 time_format_conversion.pl 的用于转换 audit 日志时间格式的脚本为例)

步骤二:转换 audit 日志时间格式

# cat /var/log/audit/audit.log | perl -p time_format_conversion.pl

或者:

# less /var/log/audit/audit.log | perl -p time_format_conversion.pl

或者:

# more /var/log/audit/audit.log | perl -p time_format_conversion.pl

或者:

# head /var/log/audit/audit.log | perl -p time_format_conversion.pl

或者:

# tail /var/log/audit/audit.log | perl -p time_format_conversion.pl

或者:

# tail -f /var/log/audit/audit.log | perl -p time_format_conversion.pl

(补充:这里以使用名为 time_format_conversion.pl 的用于转换 audit 日志时间格式的脚本为例)

[步骤] 文件或目录的监控 (audit 版)

步骤一:使用 audit 监控文件或目录

1.1 在 audit 的策略里添加要监控的目录或文件

1.1.1 案例一:监控某个目录以及目录下的目录和文件
# vim /etc/audit/rules.d/audit.rules

添加以下内容:

......
-a exit,always -F dir=/tmp -F perm=rwxa

(补充:这里以监控目录 /tmp 里的目录和文件为例)

1.1.2 案例二:监控某个文件
# vim /etc/audit/rules.d/audit.rules

添加以下内容:

......
-a exit,always -S unlink -S unlinkat -S rmdir -S rename -S renameat -F path=/dev/null

(补充:这里以监控目录 /dev/null 文件为例)

1.2 让监控目录或文件的配置生效

# service auditd restart

步骤二:显示 audit 监控记录

# cat /var/log/audit


补充:记录里的
1) nametype=CREATE 字段代表创建
2) nametype=NORMAL 字段代表普通
3) nametype=DELETE 字段代表删除

或者:

# sudo ausearch -i -k user-modify

(补充:这里以显示文件被修改的记录为例)

[内容] Linux 命令 expr (截取字符串、计算字符串长度和数值运算)

案例一:计算字符串长度

# expr length 'eternalcenter.com'
17

(补充:这里以计算字符串 eternalcenter.com 的长度为例)

案例二:截取字符串

# expr substr "eternalcenter.com" 1 13
expr substr "eternalcenter.com" 1 13

(补充:这里以计算字符串 eternalcenter.com 的第 1 个字符到第 13 个字符串为例)

案例三:显示某字符在某字符串中第 1 次出现的位置

# expr index eternalcenter.com r
4

(补充:这里以显示 r 字符在字符串 eternalcenter.com 中第 1 次出现的位置为例)

案例四:数值运算

4.1 案例一:加法

# expr 1 + 1
2

(补充:这里以 1 加 1 等于 2 为例)

4.2 案例二:减法

# expr 2 - 1
1

(补充:这里以 2 减 1 等于 1 为例)

4.3 案例三:乘法

# expr 3 \* 3
9

(补充:这里以 3 乘以 3 等于 9 为例)

(注意:expr 使用乘法时必须要使用反义符号 “\”)

4.4 案例四:除法

# expr 9 / 3 / 3
1

(补充:这里以 9 除以 3 再除以 3 为等于 1 为例)