[命令] Linux 命令 rpm (Red Hat Package Manager) (管理软件)

案例一:安装软件

1.1 安装软件

# rpm -i proxychains-ng-4.11-lp152.3.5.x86_64.rpm

或者:

# rpm --install proxychains-ng-4.11-lp152.3.5.x86_64.rpm

(补充:这里以安装 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例)

1.2 安装软件并显示详细信息

# rpm -ivh proxychains-ng-4.11-lp152.3.5.x86_64.rpm

或者:

# rpm --install --verbose --hash proxychains-ng-4.11-lp152.3.5.x86_64.rpm

(补充:这里以安装 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例)

1.3 重复安装软件

# rpm -ivh --replacepkgs proxychains-ng-4.11-lp152.3.5.x86_64.rpm

或者:

# rpm --install --verbose --hash --replacepkgs proxychains-ng-4.11-lp152.3.5.x86_64.rpm


补充:
1) 这里以安装 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例
2) 重复安装软件时,没有 –replacepkgs 参数则会安装失败

1.4 忽略软件依赖的问题安装软件

# rpm -ivh --nodeps proxychains-ng-4.11-lp152.3.5.x86_64.rpm

或者:

# rpm --install --verbose --hash --nodeps proxychains-ng-4.11-lp152.3.5.x86_64.rpm


补充:
1) 这里以安装 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例
2) 忽略依赖问题安装软件时,如果有依赖问题的话,没有 –nodeps 参数则会安装失败

1.5 强制安装软件 (不建议)

# rpm -ivh --force proxychains-ng-4.11-lp152.3.5.x86_64.rpm

或者:

# rpm --install --verbose --hash --force proxychains-ng-4.11-lp152.3.5.x86_64.rpm

(补充:这里以安装 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例)

案例二:删除软件

2.1 删除软件

# rpm -e proxychains-ng-4.11-lp152.3.5.x86_64.rpm

或者:

# rpm --erase proxychains-ng-4.11-lp152.3.5.x86_64.rpm

(补充:这里以删除 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例)

2.2 删除软件并显示详细信息

# rpm -evh proxychains-ng-4.11-lp152.3.5.x86_64.rpm

或者:

# rpm --erase --verbose --hash proxychains-ng-4.11-lp152.3.5.x86_64.rpm

(补充:这里以删除 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例)

案例三:升级软件

3.1 升级软件

3.1.1 升级软件 (如果这个软件没有安装过则会直接安装而不是升级)
# rpm -U proxychains-ng-4.11-lp152.3.5.x86_64.rpm

或者:

# rpm --upgrade proxychains-ng-4.11-lp152.3.5.x86_64.rpm

(补充:这里以升级 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例)

3.1.2 升级软件 (只有当这个软件已经安装过了才会升级)
# rpm -F proxychains-ng-4.11-lp152.3.5.x86_64.rpm

或者:

# rpm --freshen proxychains-ng-4.11-lp152.3.5.x86_64.rpm

(补充:这里以升级 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例)

3.2 升级软件并显示详细信息

3.2.1 升级软件并显示详细信息 (如果这个软件没有安装过则会直接安装而不是升级)
# rpm -Uvh proxychains-ng-4.11-lp152.3.5.x86_64.rpm

或者:

# rpm --upgrade --verbose --hash proxychains-ng-4.11-lp152.3.5.x86_64.rpm

(补充:这里以升级 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例)

3.2.2 升级软件并显示详细信息 (只有当这个软件已经安装过了才会升级)
# rpm -Fvh proxychains-ng-4.11-lp152.3.5.x86_64.rpm

或者:

# rpm --freshen --verbose --hash proxychains-ng-4.11-lp152.3.5.x86_64.rpm

(补充:这里以升级 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例)

3.3 忽略软件依赖的问题来升级软件

# rpm -Uvh --nodeps proxychains-ng-4.11-lp152.3.5.x86_64.rpm

或者:

# rpm --upgrade --verbose --hash --nodeps proxychains-ng-4.11-lp152.3.5.x86_64.rpm


补充:
1) 这里以升级 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例
2) 忽略依赖问题升级软件时,如果有依赖问题的话,没有 –nodeps 参数则会安装失败

3.4 强制升级软件 (不建议)

# rpm -Uvh --force proxychains-ng-4.11-lp152.3.5.x86_64.rpm

或者:

# rpm --upgrade --verbose --hash --force proxychains-ng-4.11-lp152.3.5.x86_64.rpm

(补充:这里以升级 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例)

案例四:显示软件信息

4.1 显示所有软件的信息

4.1.1 显示所有已安装的软件
# rpm -qa

或者:

# rpm --query --all
4.1.2 显示所有已安装的软件的安装时间
# rpm -qa --last

或者:

# rpm --query --all --last
4.1.3 显示所有已安装的软件所属的发布信息并换行显示
# rpm -qa --queryformat "%{DISTRIBUTION}\n" | sort | uniq
Koji
(none)

或者:

# rpm --query --all --queryformat "%{DISTRIBUTION}\n" | sort | uniq
Koji
(none)
4.1.4 显示所有已安装的软件所属的 GPG 信息并换行显示
# rpm -q gpg-pubkey --qf '%{name}-%{version}-%{release} --> %{summary}\n'
gpg-pubkey-6d745a60-60287f36 --> gpg(Release Engineering <infrastructure@rockylinux.org>)

4.2 显示某个软件的信息

4.2.1 显示某个软件的全名
# rpm -q systemd

(补充:这里以显示 systemd 软件的全名为例)

4.2.2 显示某个软件安装时附带执行的全部命令
# rpm -q systemd | xargs -n1 -I % sh -c 'echo %; rpm -q --scripts %

(补充:这里以显示 systemd 软件安装时附带执行的全部命令为例)

4.2.3 显示某个软件安装时附带创建了哪些账号
# rpm -q systemd | xargs -n1 -I % sh -c 'echo %; rpm -q --scripts % | grep useradd' 

(补充:这里以显示 systemd 软件安装时附带创建了哪些账号为例)

4.2.4 查找某个用户是被某个软件安装时附带创建的
# rpm -q --scripts `rpm -qa`  | grep -E 'systemd-bus-proxy|useradd'

(补充:这里以显示 systemd-bus-proxy 用户是被某个软件安装时附带创建的为例)

4.2.5 显示某个软件的文件信息
# rpm -qp log4j-1.2.17-18.el7_4.noarch

或者:

# rpm --query --package log4j-1.2.17-18.el7_4.noarch

(补充:这里以显示 log4j-1.2.17-18.el7_4.noarch 软件的信息为例)

4.2.6 显示某个软件的全部信息 (包括安装时间、大小等等)
# rpm -qi log4j-1.2.17-18.el7_4.noarch

或者:

# rpm --query --info log4j-1.2.17-18.el7_4.noarch

(补充:这里以显示 log4j-1.2.17-18.el7_4.noarch 软件的信息为例)

4.2.7 显示某个软件的所有文件
4.2.7.1 显示某个软件的所有文件
# rpm -ql log4j-1.2.17-18.el7_4.noarch

或者:

# rpm --query --list log4j-1.2.17-18.el7_4.noarch

(补充:这里以显示 log4j-1.2.17-18.el7_4.noarch 软件的信息为例)

4.2.7.2 显示某个软件的所有文件和这些文件的详细信息
# rpm -qlv log4j-1.2.17-18.el7_4.noarch

或者:

# rpm --query --list --verbose log4j-1.2.17-18.el7_4.noarch


补充:
1) 这里以显示 log4j-1.2.17-18.el7_4.noarch 软件的信息为例
2) v 参数在这里的作用类似 ls 命令中的 -l 参数

4.2.8 显示某个软件所有文件的状态
4.2.8.1 显示某个软件所有文件的状态
# rpm -qs log4j-1.2.17-18.el7_4.noarch

或者:

# rpm --query --state log4j-1.2.17-18.el7_4.noarch

(补充:这里以显示 log4j-1.2.17-18.el7_4.noarch 软件所有文件的状态为例)

4.2.8.2 显示某个软件所有文件的状态和这些文件的详细信息
# rpm -qsv log4j-1.2.17-18.el7_4.noarch

或者:

# rpm --query --state --verbose log4j-1.2.17-18.el7_4.noarch


补充:
1) 这里以显示 log4j-1.2.17-18.el7_4.noarch 软件所有文件的状态为例
2) v 参数在这里的作用类似 ls 命令中的 -l 参数

4.2.9 显示某个软件的配置文件
4.2.9.1 显示某个软件的配置文件
# rpm -qc log4j-1.2.17-18.el7_4.noarch

或者:

# rpm --query --configfiles log4j-1.2.17-18.el7_4.noarch

(补充:这里以显示 log4j-1.2.17-18.el7_4.noarch 软件的信息为例)

4.2.9.2 显示某个软件的配置文件和这些文件的详细信息
# rpm -qcv log4j-1.2.17-18.el7_4.noarch

或者:

# rpm --query --configfiles --verbose log4j-1.2.17-18.el7_4.noarch


补充:
1) 这里以显示 log4j-1.2.17-18.el7_4.noarch 软件的信息为例
2) v 参数在这里的作用类似 ls 命令中的 -l 参数

4.2.10 显示某个软件的文档文件 (man 手册、info 手册、READMEs 等等)
4.2.10.1 显示某个软件的文档文件 (man 手册、info 手册、READMEs 等等)
# rpm -qd log4j-1.2.17-18.el7_4.noarch

或者:

# rpm --query --docfiles log4j-1.2.17-18.el7_4.noarch

(补充:这里以显示 log4j-1.2.17-18.el7_4.noarch 软件的文档为例)

4.2.10.2 显示某个软件的文档文件 (man 手册、info 手册、READMEs 等等)
# rpm -qdv log4j-1.2.17-18.el7_4.noarch

或者:

# rpm --query --docfiles --verbose log4j-1.2.17-18.el7_4.noarch


补充:
1) 这里以显示 log4j-1.2.17-18.el7_4.noarch 软件的文档为例
2) v 参数在这里的作用类似 ls 命令中的 -l 参数

4.2.11 显示某个软件的变更历史
4.2.11.1 显示某个软件的变更历史
# rpm -q --changelog openssh-clients

或者:

# rpm --query --changelog openssh-clients

(补充:这里以显示 openssh-clients 软件的变更历史为例)

4.2.11.2 显示某个软件 CVE 信息的变更历史
# rpm -q openssh-clients --changelog | grep -i cve

或者:

# rpm --query openssh-clients --changelog | grep -i cve

(补充:这里以显示 openssh-clients 软件的 CVE 信息的变更历史为例)

4.2.11.3 显示某个软件现在的版本是否修复 CVE 漏洞
# rpm -qpi --changelog redis-6.0.14-6.8.1.x86_64.rpm |grep -E '32675'
- Fix CVE-2021-32675, Denial Of Service when processing RESP request
  (CVE-2021-32675, bsc#1191303)
  * cve-2021-32675.patch

或者:

# rpm --query --package --info --changelog redis-6.0.14-6.8.1.x86_64.rpm |grep -E '32675'
- Fix CVE-2021-32675, Denial Of Service when processing RESP request
  (CVE-2021-32675, bsc#1191303)
  * cve-2021-32675.patch

(补充:这里以确认 redis-6.0.14-6.8.1.x86_64.rpm 软件是否已修复 CVE-2021-32675 为例)

4.2.12 显示某个文件所属的软件
# rpm -qf /usr/share/java/log4j.jar

或者:

# rpm --query --file /usr/share/java/log4j.jar

(补充:这里以显示 /usr/share/java/log4j.jar 文件属于哪个软件为例)

案例五:验证软件

5.1 验证某个软件的文件是否发生变化

# rpm -V proxychains-ng-4.11-lp152.3.5.x86_64

或者:

# rpm --verify proxychains-ng-4.11-lp152.3.5.x86_64


补充:
1) 这里以验证 proxychains-ng-4.11-lp152.3.5.x86_64 软件为例
2) 如果显示 c 则代表是配置文件 (config file)
3) 如果显示 d 则代表是普通文件 (documentation)
4) 如果显示 g 则代表是鬼文件 (ghost file),此文件不该被此 RPM 包含,此情况很少见
5) 如果显示 l 则代表是授权文件 (license file)
6) 如果显示 r 则代表是描述文件 (read me)
7) 如果显示 . 或者什么也没有显示则代表什么都没有改变
8) 如果显示 5 则代表文件 MD5 校验码发生改变
9) 如果显示 S 则代表文件大小 (size) 发生改变
10) 如果显示 L 则代表文件链接 (link) 发生改变
11) 如果显示 T 则代表文件修改时间 (time) 发生改变
12) 如果显示 D 则代表设备文件号发生改变
13) 如果显示 U 则代表所属主 (owner) 发生改变
14) 如果显示 G 则代表所属组 (group) 发生改变
15) 如果显示 M 则代表权限和文件类型 (mod) 发生改变

5.2 验证某文件所属的软件的文件是否发生变化

# rpm -Vf /etc/proxychains

或者:

# rpm --verify --file /etc/proxychains


补充:
1) 这里以验证 /etc/proxychains 文件为例
2) 如果显示 c 则代表是配置文件 (config file)
3) 如果显示 d 则代表是普通文件 (documentation)
4) 如果显示 g 则代表是鬼文件 (ghost file),此文件不该被此 RPM 包含,此情况很少见
5) 如果显示 l 则代表是授权文件 (license file)
6) 如果显示 r 则代表是描述文件 (read me)
7) 如果显示 . 或者什么也没有显示则代表什么都没有改变
8) 如果显示 5 则代表文件 MD5 校验码发生改变
9) 如果显示 S 则代表文件大小 (size) 发生改变
10) 如果显示 L 则代表文件链接 (link) 发生改变
11) 如果显示 T 则代表文件修改时间 (time) 发生改变
12) 如果显示 D 则代表设备文件号发生改变
13) 如果显示 U 则代表所属主 (owner) 发生改变
14) 如果显示 G 则代表所属组 (group) 发生改变
15) 如果显示 M 则代表权限和文件类型 (mod) 发生改变

5.3 验证所有已经安装的软件的文件是否发生变化

# rpm -Va

或者:

# rpm --verify --all /etc/proxychains


补充:
1) 如果什么都不显示,则代表什么都没有改变
2) 如果显示 c 则代表是配置文件 (config file)
3) 如果显示 d 则代表是普通文件 (documentation)
4) 如果显示 g 则代表是鬼文件 (ghost file),此文件不该被此 RPM 包含,此情况很少见
5) 如果显示 l 则代表是授权文件 (license file)
6) 如果显示 r 则代表是描述文件 (read me)
7) 如果显示 . 或者什么也没有显示则代表什么都没有改变
8) 如果显示 5 则代表文件 MD5 校验码发生改变
9) 如果显示 S 则代表文件大小 (size) 发生改变
10) 如果显示 L 则代表文件链接 (link) 发生改变
11) 如果显示 T 则代表文件修改时间 (time) 发生改变
12) 如果显示 D 则代表设备文件号发生改变
13) 如果显示 U 则代表所属主 (owner) 发生改变
14) 如果显示 G 则代表所属组 (group) 发生改变
15) 如果显示 M 则代表权限和文件类型 (mod) 发生改变

5.4 通过 RPM 文件 (安装包) 验证已安装的软件的文件是否发生变化

# rpm -Vp proxychains-ng-4.11-lp152.3.5.x86_64.rpm

或者:

# rpm --verify --package proxychains-ng-4.11-lp152.3.5.x86_64.rpm


补充:
1) 这里以使用 proxychains-ng-4.11-lp152.3.5.x86_64.rpm RPM 文件进行验证为例
2) 如果显示 c 则代表是配置文件 (config file)
3) 如果显示 d 则代表是普通文件 (documentation)
4) 如果显示 g 则代表是鬼文件 (ghost file),此文件不该被此 RPM 包含,此情况很少见
5) 如果显示 l 则代表是授权文件 (license file)
6) 如果显示 r 则代表是描述文件 (read me)
7) 如果显示 . 或者什么也没有显示则代表什么都没有改变
8) 如果显示 5 则代表文件 MD5 校验码发生改变
9) 如果显示 S 则代表文件大小 (size) 发生改变
10) 如果显示 L 则代表文件链接 (link) 发生改变
11) 如果显示 T 则代表文件修改时间 (time) 发生改变
12) 如果显示 D 则代表设备文件号发生改变
13) 如果显示 U 则代表所属主 (owner) 发生改变
14) 如果显示 G 则代表所属组 (group) 发生改变
15) 如果显示 M 则代表权限和文件类型 (mod) 发生改变

5.4 验证已经安装的软件的文件是否发生变化 (排除某些参数不进行验证)

# rpm -Va --nomtime --nosize --nomd5 --nolinkto


补充:
1) 这里以验证所有已经安装的软件的文件是否发生变化,但是不验证文件修改时间、文件大小、文件 MD5 校验码、文件链接为例
2) 如果什么都不显示,则代表什么都没有改变
3) 如果显示 c 则代表是配置文件 (config file)
4) 如果显示 d 则代表是普通文件 (documentation)
5) 如果显示 g 则代表是鬼文件 (ghost file),此文件不该被此 RPM 包含,此情况很少见
6) 如果显示 l 则代表是授权文件 (license file)
7) 如果显示 r 则代表是描述文件 (read me)
8) 如果显示 . 或者什么也没有显示则代表什么都没有改变
9) 如果显示 5 则代表文件 MD5 校验码发生改变
10) 如果显示 S 则代表文件大小 (size) 发生改变
11) 如果显示 L 则代表文件链接 (link) 发生改变
12) 如果显示 T 则代表文件修改时间 (time) 发生改变
13) 如果显示 D 则代表设备文件号发生改变
14) 如果显示 U 则代表所属主 (owner) 发生改变
15) 如果显示 G 则代表所属组 (group) 发生改变
16) 如果显示 M 则代表权限和文件类型 (mod) 发生改变

案例六:测试软件

6.1 测试安装软件

# rpm -ivh --test proxychains-ng-4.11-lp152.3.5.x86_64.rpm

或者:

# rpm --install --verbose --hash --test proxychains-ng-4.11-lp152.3.5.x86_64.rpm

(补充:这里以测试安装 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例)

6.2 测试删除软件

# rpm --erase --test proxychains-ng-4.11-lp152.3.5.x86_64


补充:
1) 这里以测试删除 proxychains-ng-4.11-lp152.3.5.x86_64 软件为例
2) 这里会显示 proxychains-ng-4.11-lp152.3.5.x86_64 软件被哪些软件依赖

[命令] Linux 命令 rsync (差异同步)

案例一:将一个地方里的所有差异数据同步到另一个地方

# rsync -avDogp <source directory>/* <target directory>

案例二:将一个地方里的所有差异数据同步到另一个地方,并且被同步的地方有的数据而原地方没有的数据都将被删除

# rsync -avDogp --delete <source directory>/* <target directory>

[内容] DNS 客户端的设置 (Linux 版)

内容一:设置 DNS 客户端

1.1 直接在本地指定域名

1.1.1 直接在本地指定域名的方法
# vim /etc/hosts

添加以下内容:

......
<IP address> <domain name>

(注意:/etc/hosts 里记录的 DNS 优先级要比 /etc/resolv.conf 里的高)

1.1.2 直接在本地指定域名的案例
# vim /etc/hosts

添加以下内容:

......
192.154.240.64 eternalcenter.com

(补充:这里以将 192.154.240.64 解析为 eternalcenter.com 为例)

(注意:/etc/hosts 里记录的 DNS 优先级要比 /etc/resolv.conf 里的高)

1.2 使用远程的 DNS 服务器解析域名

1.2.1 使用远程的 DNS 服务器解析域名
1.2.1.1 使用远程的 DNS 服务器解析域名的方法
1.2.1.1.1 直接修改 /etc/resolv.conf 文件
# vim /etc/resolv.conf

添加以下内容:

......
nameserver <IP address of DNS server>

(注意:/etc/hosts 里记录的 DNS 优先级要比 /etc/resolv.conf 里的高)

1.2.1.1.2 使用 nmcli 命令
1.2.1.1.2.1 使用 nmcli 命令配置一个 DNS 服务器的 IP 地址
# nmcli connection modify <network card name> ipv4.dns <IP address of DNS server>

(补充:不将 /etc/NetworkManager/NetworkManager.conf 里的 [main] dns=none 参数修改为 none 的话,此参数会覆盖 /etc/resolv.conf 里的设置)


注意:
1) 此方法只对 CentOS8&RHEL8 适用
2) /etc/hosts 里记录的 DNS 优先级要比使用 nmcli 命令的高

1.2.1.1.2.2 使用 nmcli 命令配置多个 DNS 服务器的 IP 地址
# nmcli connection modify <network card name> ipv4.dns "<first IP address of DNS server>,<second IP address of DNS server>,<third IP address of DNS server>......"

(补充:不将 /etc/NetworkManager/NetworkManager.conf 里的 [main] dns=none 参数修改为 none 的话,此参数会覆盖 /etc/resolv.conf 里的设置)


注意:
1) 此方法只对 CentOS8&RHEL8 适用
2) /etc/hosts 里记录的 DNS 优先级要比使用 nmcli 命令的高

1.2.1.2 使用远程的 DNS 服务器解析域名的案例
1.2.1.2.1 直接修改 /etc/resolv.conf 文件
# vim /etc/resolv.conf

添加以下内容:

......
nameserver 8.8.8.8

(补充:这里以使用 8.8.8.8 DNS 服务器为例)

(注意:/etc/hosts 里记录的 DNS 优先级要比 /etc/resolv.conf 里的高)

1.2.1.2.2 使用 nmcli 命令
# nmcli connection modify eth0 ipv4.dns 8.8.8.8


补充:
1) 这里以给 eth0 网卡添加 8.8.8.8 DNS 服务器为例
2) 不将 /etc/NetworkManager/NetworkManager.conf 里的 [main] dns=none 参数修改为 none 的话,此参数会覆盖 /etc/resolv.conf 里的设置

(注意:/etc/hosts 里记录的 DNS 优先级要比使用 nmcli 命令的高)

1.2.2 显示正在使用远程的 DNS 服务器解析的域名
# nmcli connection show | grep -i ipv4.dns

内容二:检查 DNS 域名解析

2.1 使用 ping 命令解析域名

2.1.1 使用 ping 命令解析域名的格式
# ping <domain name>
2.1.2 使用 ping 命令解析域名的案例
# ping eternalcenter.com
PING eternalcenter.com (192.154.240.64) 56(84) bytes of data.
64 bytes from v144-48-142.ap-east.sugarhosts.net (192.154.240.64): icmp_seq=1 ttl=50 time=144 ms
64 bytes from v144-48-142.ap-east.sugarhosts.net (192.154.240.64): icmp_seq=3 ttl=50 time=70.8 ms
64 bytes from v144-48-142.ap-east.sugarhosts.net (192.154.240.64): icmp_seq=4 ttl=50 time=81.3 ms
64 bytes from v144-48-142.ap-east.sugarhosts.net (192.154.240.64): icmp_seq=5 ttl=50 time=103 ms
......

2.2 使用 host 命令解析域名

2.2.1 使用 host 命令解析域名的格式
# host <domain name>
2.2.2 使用 host 命令解析域名的案例
# host eternalcenter.com
eternalcenter.com has address 192.154.240.64

(补充:这里以解析 etenalcenter.com 域名为例)

2.3 使用 nslookup 命令解析域名

2.3.1 使用 nslookup 命令解析域名的格式
# nslookup <domain name>
2.3.2 使用 nslookup 命令解析域名的案例
# nslookup eternalcenter.com
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
Name:	eternalcenter.com
Address: 192.154.240.64

(补充:这里以解析 etenalcenter.com 域名为例)

[内容] Linux SELinux 布尔 (boolean) 值的设置

内容一:开启 SELinux 布尔(boolean)值

1.1 显示当前 SELinux 状态

# getenforce

1.2 将 SELinux 的状态设置为 Enforcing 以开启布尔(boolean)值

1.2.1 当当前 SELinux 的状态为 Disabled 时开启布尔(boolean)值的方法
1.2.1.1 修改 SELinux 配置文件
# vim /etc/selinux/config

将以下内容:

......
SELINUX=disabled
......

修改为:

......
SELINUX=enforcing
......
1.2.1.2 重启系统
# reboot
1.2.2 当当前 SELinux 的状态为 Perssive 时开启布尔(boolean)值的方法
# setenfoce 1

(补充:系统重启后失效)

内容二:显示所有 SELinux 布尔(boolean)值

# semanage boolean -l

内容三:布尔(boolean)值的管理

3.1 允许某一个 SELinux 布尔(boolean)值开启

3.1.1 临时允许某一个 SELinux 布尔(boolean)值开启
3.1.1.1 临时允许某一个 SELinux 布尔(boolean)值开启的格式
# setsebool <boolean value> 1

或者:

# setsebool <boolean value> on
3.1.1.2 临时允许某一个 SELinux 布尔(boolean)值开启的案例
# setsebool httpd_can_network_connect 1

或者:

# setsebool httpd_can_network_connect on
3.1.2 永久允许某一个 SELinux 布尔(boolean)值开启
3.1.2.1 永久允许某一个 SELinux 布尔(boolean)值开启的格式
# setsebool -P <boolean value> 1

或者:

# setsebool -P <boolean value> on
3.1.2.2 永久允许某一个 SELinux 布尔(boolean)值开启的案例
# setsebool -P httpd_can_network_connect 1

或者:

# setsebool -P httpd_can_network_connect on

3.2 取消某一个 SELinux 布尔(boolean)值开启

3.2.1 临时取消某一个 SELinux 布尔(boolean)值开启
3.2.1.1 临时取消某一个 SELinux 布尔(boolean)值开启的格式
# setsebool <boolean value> 0

或者:

# setsebool <boolean value> off
3.2.1.2 临时取消某一个 SELinux 布尔(boolean)值开启的案例
# setsebool httpd_can_network_connect 0

或者:

# setsebool httpd_can_network_connect off
3.2.2 永久取消某一个 SELinux 布尔(boolean)值关闭
3.2.2.1 永久取消某一个 SELinux 布尔(boolean)值开启的格式
# setsebool -P <boolean value> 0

或者:

# setsebool -P <boolean value> off
3.2.2.2 永久取消某一个 SELinux 布尔(boolean)值开启的案例
# setsebool -P httpd_can_network_connect 0

或者:

# setsebool -P httpd_can_network_connect off

[步骤] Linux 光纤号的显示

步骤一:显示有哪些光纤号

# lspci | grep -i fibre

步骤二:显示光纤号有哪些配置文件

# ls /sys/class/fc_host/
host1  host2  host3  host4

步骤三:显示光纤号配置文件里对应 FC HBA 卡的 WWN 信息

# cat /sys/class/fc_host/host[1-4]/port_name

步骤四:显示光纤的状态

4.1 光纤正常在线的情况

# cat /sys/class/fc_host/host5/port_state
online

4.2 光纤不正常或者不在线的情况

# cat /sys/class/fc_host/host7/port_state
linkdown