长期支持版本

    常用技能

    配置网络

    1. 配置IP地址

    使用IP命令为接口配置地址,interface-name为网卡名称。

    ip addr [ add | del ] address dev interface-name
    
    1. 配置静态地址
    # 配置IP地址
    ip address add 192.168.0.10/24 dev enp3s0
    
    # 查看配置结果,在root权限使用如下命令
    ip addr show dev enp3s0
    
    # 结果如下
    2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:aa:ad:4a brd ff:ff:ff:ff:ff:ff
    inet 192.168.202.248/16 brd 192.168.255.255 scope global dynamic noprefixroute enp3s0
    valid_lft 9547sec preferred_lft 9547sec
    inet 192.168.0.10/24 scope global enp3s0
    valid_lft forever preferred_lft forever
    inet6 fe80::32e8:cc22:9db2:f4d4/64 scope link noprefixroute
    valid_lft forever preferred_lft forever
    
    1. 配置静态路由

    静态路由,可使用 ip route add 命令在路由表中添加,使用 ip route del 命令删除。常用的 ip route 命令格式如下:

    ip route [ add | del | change | append | replace ] destination-address
    
    • 在主机地址中添加一个静态路由,在 root 权限下,使用以下命令格式:
    ip route add 192.168.2.1 via 10.0.0.1 [dev interface-name]
    
    • 在网络中添加一个静态路由,在root权限下运行以下命令格式:
    ip route add 192.168.2.0/24 via 10.0.0.1 [dev interface-name]
    
    1. 通过ifcfg文件配置网络

    通过在root权限下修改ifcfg文件实现,在/etc/sysconfig/network-scripts/目录中生成名为ifcfg-enp4s0的文件中,修改参数配置,示例如下:

    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=none
    IPADDR=192.168.0.10
    PREFIX=24
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=enp4s0static
    UUID=xx
    DEVICE=enp4s0
    ONBOOT=yes
    

    管理RPM包

    RPM的全名是Red Hat Package Manager,本意是Red Hat 软件包管理。在openEuler、Fedora 、Redhat、Mandriva、SuSE、YellowDog等主流发行版本,以及在这些版本基础上二次开发出来的发行版采用。

    RPM以数据库记录的方式将需要的软件安装到Linux主机的一套管理程序,特点是将要安装的软件先编译并打包,通过包装好的软件中默认的数据库记录,记录这个软件在安装的时候需要的依赖属性模块,在用户的Linux主机安装时,RPM会先根据软件里的记录数据,查询Linux主机的依赖属性软件是否满足。

    • 若满足则予以安装。
    • 若不满足则不安装。安装时将该软件的信息全部写入RPM的数据库中以便后续查询、验证与卸载。

    zh-cn_other_0000001337581224

    1. rpm包默认安装路径

    通常情况下,RPM采用系统默认的安装路径(默认安装路径可以通过命令查询,后续章节中将会详细介绍),所有安装文件都会按照类别分散到如下表格所示的目录中。

    表 1 RPM安装路径及其含义

    安装路径含义
    /etc/配置文件安装目录。
    /usr/bin/可执行命令安装目录。
    /usr/lib/程序所使用的函数库保存位置。
    /usr/share/doc基本软件使用手册保存位置。
    /usr/share/man/帮助文件保存位置。

    注意: RPM包支持手动指定安装路径,但此方式不推荐使用。通过手动指定安装路径后,所有的安装文件会集中安装到指定位置,且系统中用来查询安装路径的命令也无法使用(需手动配置才能被系统识别)。

    1. rpm命令选项

    操作1. 软件包RPM签名检查

    Linux机器安装RPM包之前,需要检查PGP签名,确保签名的完整性和来源无问题后,使用RPM命令中的以下选项来验证有效性。

    rpm --checksig nano-2.3.1-10.el7.x86_64.rpm
    

    操作2. 安装RPM包

    Linux系统中安装RPM包时,请在rpm命令中使用 -i 选项。

    rpm -ivh nano-2.3.1-10.el7.x86_64.rpm
    
    • -i : 安装软件包
    • -v: 详细信息
    • -h: 套件安装时列出标记

    操作3. 查询已安装的RPM包

    查询Linux系统中已经安装的RPM包(dnf),可以在rpm命令中使用 -q 选项。

    rpm -q dnf
    
    • -q: 查询操作

    如果系统未安装给定的包,会出现以下错误信息。

    # rpm -q dnf
    package dnf is not installed
    

    操作4. 查询所有已安装的RPM包

    查询Linux系统中安装的所有RPM包,请在rpm命令中使用 -qa 选项。

    # rpm -qa 
    dracut-config-rescue-055-4.oe2203.x86_64
    parted-3.4-3.oe2203.x86_64
    irqbalance-1.8.0-7.oe2203.x86_64
    ......
    

    注意:一般在使用 -qa 选项时,会配合管道符 “|” 一起使用,提升查找的准确率。

    操作5. 查看已安装的RPM包详细信息

    在rpm命令中使用 -qi 选项来查看系统中安装的RPM包的详细信息。

    # rpm -qi python3
    Name        : python3
    Version     : 3.9.9
    Release     : 7.oe2203
    Architecture: x86_64
    Install Date: Wed 30 Mar 2022 08:30:23 AM UTC
    Group       : Unspecified
    Size        : 35916839
    License     : Python
    Signature   : RSA/SHA1, Wed 30 Mar 2022 03:29:30 AM UTC, Key ID d557065eb25e7f66
    Source RPM  : python3-3.9.9-7.oe2203.src.rpm
    Build Date  : Tue 15 Mar 2022 12:00:00 AM UTC
    Build Host  : obs-worker1639015616-x86-0001
    Packager    : http://openeuler.org
    Vendor      : http://openeuler.org
    URL         : https://www.python.org/
    Summary     : Interpreter of the Python3 programming language
    Description :
    Python combines remarkable power with very clear syntax. It has modules,
    classes, exceptions, very high level dynamic data types, and dynamic
    typing. There are interfaces to many system calls and libraries, as well
    as to various windowing systems. New built-in modules are easily written
    in C or C++ (or other languages, depending on the chosen implementation).
    Python is also usable as an extension language for applications written
    in other languages that need easy-to-use scripting or automation interfaces.
    
    This package Provides python version 3.
    

    操作6. 查看未安装的RPM包所有文件

    查看未安装的RPM包的文件列表,可以在rpm命令中使用 -qlp 选项。

    # rpm -qlp pkgship-3.0.0-1.oe2203.noarch.rpm
    /etc/ima/digest_lists.tlv/0-metadata_list-compact_tlv-pkgship-3.0.0-1.oe2203.noarch
    /etc/ima/digest_lists/0-metadata_list-compact-pkgship-3.0.0-1.oe2203.noarch
    /etc/pkgship/auto_install_pkgship_requires.sh
    /etc/pkgship/conf.yaml
    /etc/pkgship/package.ini
    ......
    

    操作7. 查看未安装的RPM包依赖项

    查看未安装的RPM包编译的依赖包列表,可以在rpm命令中使用 -qRp 选项。

    # rpm -qRp pkgship-3.0.0-1.oe2203.noarch.rpm
    /bin/bash
    /bin/sh
    /usr/bin/python3
    config(pkgship) = 3.0.0-1.oe2203
    python3
    python3-Flask-Limiter
    ......
    

    操作8. 验证所有已安装的RPM包

    验证已安装的RPM包时,将包中安装的文件信息与rpm数据库中存储的包元数据中获取的文件的信息进行比较,可以通过在rpm命令中使用 -Va 选项。

    # rpm -Va
    S.5....T.  c /root/.bashrc
    .......T.  c /etc/yum.repos.d/openEuler.repo
    S.5....T.  c /etc/issue
    S.5....T.  c /etc/issue.net
    S.5....T.  c /etc/csh.login
    S.5....T.  c /etc/profile
    .M....G..  g /var/log/lastlog
    .M.......  c /boot/grub2/grubenv
    ......
    

    rpm -Va命令相关输出字段及其含义:

    字段含义
    S文件长度发生变化。
    M文件的访问权限或文件类型发生变化。
    5MD5校验和发生变化。
    D设备节点的属性发生变化。
    L文件的符号链接发生变化。
    U文件/子目录/ 设备节点的owner发生变化。
    G文件/子目录/ 设备节点的group发生变化。
    T文件最后一次的修改时间发生变化。

    操作9. 查看特定文件的RPM包

    在Linux上找到一个提供特定二进制文件的RPM包,可以在rpm命令中使用 -qf 选项。

    # rpm -qf /usr/share/doc/pkgship
    pkgship-3.0.0-1.oe2203.noarch.rpm
    

    操作10. 查看已安装RPM包中的文件

    查看特定RPM包的安装文件列表,可以在rpm命令中使用 -ql 选项。

    # rpm -ql dnf
    /etc/bash_completion.d/dnf
    /etc/ima/digest_lists.tlv/0-metadata_list-compact_tlv-dnf-4.10.0-3.oe2203.noarch
    /etc/ima/digest_lists/0-metadata_list-compact-dnf-4.10.0-3.oe2203.noarch
    /usr/bin/dnf
    /usr/lib/systemd/system/dnf-makecache.service
    /usr/lib/systemd/system/dnf-makecache.timer
    /usr/share/doc/dnf
    /usr/share/doc/dnf/AUTHORS
    /usr/share/doc/dnf/README.rst
    /usr/share/licenses/dnf
    /usr/share/licenses/dnf/COPYING
    /usr/share/licenses/dnf/PACKAGE-LICENSING
    /var/cache/dnf
    

    操作11. 查看最近安装的RPM包

    Linux是一个多用户操作系统,在使用过程中,其他用户可能已经安装了部分软件包。如需在系统中找到最近安装的包,可以在rpm命令中使用 -qa --last 选项。

    # rpm -qa --last
    ntp-4.2.8p15-5.oe2203.x86_64
    ntpstat-0.6-3.oe2203.noarch
    ntp-help-4.2.8p15-5.oe3303.noarch
    

    操作12. 只查看已安装RPM包的文档

    可以从Linux Man页面获得任何命令的帮助(/usr/share/doc/Package_Name-Version_Number/docs* 文档存放路径),查看安装的RPM包相关联的文档列表,请在rpm命令中使用 -qdf 选项,并输入二进制文件路径

    # rpm -qdf /usr/bin/grep
    /usr/share/doc/grep/NEWS
    /usr/share/doc/grep/README
    /usr/share/doc/grep/THANKS
    /usr/share/doc/grep/TODO
    /usr/share/info/grep.info.gz
    /usr/share/man/man1/egrep.1.gz
    /usr/share/man/man1/fgrep.1.gz
    /usr/share/man/man1/grep.1.gz
    

    操作13. 升级已安装的RPM包

    通过使用 -Uvh 选项和rpm命令,可以轻松地将已经安装的rpm包升级到最新版本。

    # rpm -Uvh pkgship-3.0.0-1.oe2203.noarch.rpm
    Preparing...        ################################# [100%]
    

    注意:升级安装的RPM包时,会删除旧RPM包,安装新RPM包。

    操作14. 移除已安装的RPM包

    删除安装在系统上的rpm包,请在rpm命令中使用 -ev-e 选项。

    rpm -ev pkgship
    

    操作15. 重建损坏的RPM数据库

    在尝试使用yum update命令更新系统时,可能会收到一条错误消息(RPM数据库已损坏),如果收到该信息,请在RPM命令中使用 --rebuilddb 选项。

    rm /var/lib/rpm/__db*
    rpm --rebuilddb
    

    操作16. 检查特定包的漏洞是否已修复

    可以通过在rpm命令中使用 --changelog 选项并输入相应的CVE来实现。

    rpm -q --changelog python-2.6.6 | grep -i "CVE-2019-9636"
    

    操作17. 导入RPM GPG密钥

    默认情况下,当向Linux系统添加新的存储库时,GPG密钥将自动导入。同时,也可在RPM命令中添加 --import 手动导入RPM GPG密钥,用于从存储库下载时检查包的完整性。

    rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-OpenEuler-22.03-LTS
    
    1. dnf命令

    dnf命令及其相关概述。

    命令概述
    repolist显示已配置的软件repo源。
    installLinux上安装单个或多个软件包。
    upgrade升级Linux上的一个或多个软件包。
    list列出一个或一组软件包。
    info显示关于软件包或软件包组的详细信息。
    updateinfo显示关于包的公告信息。
    search在软件包详细信息中搜索指定字符串。
    check-update检查是否有软件包升级。
    remove从系统中移除一个或多个软件包。
    reinstall重装一个包。
    downgrade降级软件包。
    autoremove删除所有原先因为依赖关系安装的不需要的软件包。
    distro-sync同步已经安装的软件包到最新可用版本。
    makecache创建元数据缓存。
    repository-package对指定仓库中的所有软件包运行命令。
    provides查找提供指定内容的软件包。
    group显示或使用组信息。
    history显示或使用事务历史。
    clean删除已缓存的数据。

    操作1. 已配置的软件repo

    显示已配置的软件仓库,默认添加 --enabled 选项(显示启用的仓库)。

    # dnf repolist --enabled
    repo id                                                                   repo name
    EPOL                                                                      EPOL
    OS                                                                        OS
    debuginfo                                                                 debuginfo
    everything                                                                everything
    pkgship_elasticsearch                                                     Elasticsearch repositor
    source                                                                    source
    update                                                                    update
    
    • --all: 显示所有的软件仓库
    • --disabled: 显示被禁用的软件仓库
    • --enabled: 显示已经启用的仓库(默认)

    操作2. 安装单个或多个软件包

    通过install 命令可以安装RPM包。

    # dnf install 软件包
    

    安装软件包的过程中可能会存在冲突的包或无法安装的包,可以在命令中增加 --allowerasing 来替换冲突的软件包或 --skip-broken 来跳过无法安装的软件包。

    # dnf install 软件包 [软件包 ...] --allowerasing --skip-broken
    

    当使用dnf安装软件包时,通过添加 --installroot 设置软件包安装的根目录。

    # dnf install 软件包 --installroot 软件包安装的根目录
    

    需要临时指定特定的repo源安装时,可以添加 --setopt=reposdir= 选项来指定repo源的加载目录。

    # dnf install 软件包 --setopt=reposdir=repo源的加载目录
    

    在安装选项时,不需要交互式确认时,可以通过添加 -y--assumeyes 使需要安装的软件包全部自动应答为

    # dnf install 软件包 -y
    

    指定特定的repo源安装rpm包时,可以通过指定 --repo--enablerepo 选项。为了达到相同的效果,也可以通过使用 --disablerepo 选项来禁用匹配的repo源,此处推荐您使用--repo选项来安装RPM包。

    # dnf install 软件包 --repo=repo源
    

    操作3. 重新安装软件包

    系统上的软件包需要执行重新安装操作时,可以执行reinstall命令。

    # dnf reinstall 软件包
    

    操作4. 升级一个或多个软件包

    • 通过upgradeupdate升级Linux上的一个或多个软件包。
    # dnf upgrade 软件包 [软件包 ...]
    # dnf update 软件包 [软件包 ...]
    

    操作5. 软件包降级

    当软件包版本过高发生兼容性问题时,可以采用降级的方式解决。

    # dnf downgrade 软件包
    

    操作6. 列出一个或一组软件包

    罗列系统中已安装的软件包和配置的repo仓中存在的软件包列表,可以使用 list 命令。

    # dnf list
    

    可以通过添加选项过滤显示包列表

    • --all: 显示所有的软件包(默认)
    • --available: 只显示可用的软件包
    • --installed: 只显示已安装的软件包
    • --extras: 只显示额外的软件包
    • --updates: 只显示需要被升级的软件包
    • --upgrades: 只显示需要被升级的软件包
    • --autoremove: 只显示需要被删除的软件包
    • --recent: 限制最近被改变的软件包

    操作7. 查看软件包详细信息

    查看软件包的详细信息时,可以使用info 命令。

    # dnf info 软件包
    

    操作8. 搜索软件包

    如需在系统中安装软件包,但不确定软件包全称时,可使用search 命令查找匹配的包。

    # dnf search 软件包
    

    操作9. 卸载一个或多个软件包

    删除已过期或重复的软件包时,可使用remove命令移除一个软件包。

    # dnf remove 软件包
    
    • --duplicates: 删除已安装(重复)的软件包
    • --oldinstallonly: 移除过期的“仅安装”软件包

    操作10. 自动删除因为依赖关系安装的软件包

    删除因为依赖关系安装的不需要的软件包时,可使用autoremove命令。

    # dnf autoremove 软件包
    

    配置SSH

    1. SSH服务介绍

    SSH(Secure Shell)是目前较可靠,专为远程登录会话和其他网络服务提供安全性保障的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。透过SSH可以对所有传输的数据进行加密,并防止DNS欺骗和IP欺骗。OpenSSH是SSH协议的免费开源实现。

    1. 配置SSH服务
    # 打开并修改/etc/ssh/sshd_config文件
    vi /etc/ssh/sshd_config
    
    # 重新启动SSH服务
    systemctl restart sshd
    
    # 检查SSH服务状态
    systemctl status sshd
    
    1. SSH服务配置文件主要选项
    # 指定SSH协议版本(Specify SSH Protocol Version)
    Protocol 2
    
    # 允许的用户(Allowed Users)
    AllowUsers xxx
    
    # 被拒绝的用户(Denied Users)
    DenyUser root
    
    # 配置会话超时(Configure Session Timeout)
    ClientAliveInterval 120
    
    # 禁用SSH根登录(Disable SSH Root Login)
    PermitRootLogin no
    
    # 配置或更改SSH端口号(Configure or Change SSH Port Number)
    Port 1234
    
    # 禁用SSH密码身份验证 (Disable SSH Password Authentication)
    PasswordAuthentication no
    

    文档捉虫

    “有虫”文档片段

    问题描述

    提交类型 issue

    有点复杂...

    找人问问吧。

    PR

    小问题,全程线上修改...

    一键搞定!

    问题类型
    规范和低错类

    ● 错别字或拼写错误;标点符号使用错误;

    ● 链接错误、空单元格、格式错误;

    ● 英文中包含中文字符;

    ● 界面和描述不一致,但不影响操作;

    ● 表述不通顺,但不影响理解;

    ● 版本号不匹配:如软件包名称、界面版本号;

    易用性

    ● 关键步骤错误或缺失,无法指导用户完成任务;

    ● 缺少必要的前提条件、注意事项等;

    ● 图形、表格、文字等晦涩难懂;

    ● 逻辑不清晰,该分类、分项、分步骤的没有给出;

    正确性

    ● 技术原理、功能、规格等描述和软件不一致,存在错误;

    ● 原理图、架构图等存在错误;

    ● 命令、命令参数等错误;

    ● 代码片段错误;

    ● 命令无法完成对应功能;

    ● 界面错误,无法指导操作;

    风险提示

    ● 对重要数据或系统存在风险的操作,缺少安全提示;

    内容合规

    ● 违反法律法规,涉及政治、领土主权等敏感词;

    ● 内容侵权;

    您对文档的总体满意度

    非常不满意
    非常满意
    提交
    根据您的反馈,会自动生成issue模板。您只需点击按钮,创建issue即可。
    文档捉虫
    编组 3备份