Общие навыки

Настройка сети

  1. Настройте IP-адрес.

    Выполните команду ip, чтобы настроить адрес для интерфейса. interface-name обозначает имя сетевой карты.

    ip addr [ add | del ] address dev interface-name
  2. Настройте статический IP-адрес.

    ip address add 192.168.0.10/24 dev enp3s0
  3. Выполните следующую команду от имени пользователя root, чтобы запросить результат конфигурации:

    ip addr show dev enp3s0

    Пример вывода:

    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
  4. Настройте статический маршрут.

    Выполните команду 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]
  5. Настройте сеть с помощью файла ifcfg.

    Измените файл ifcfg-enp4s0, созданный в каталоге /etc/sysconfig/network-scripts/, от имени пользователя root.

    Пример:

    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, Red Hat, Mandriva, SUSE и YellowDog, а также в дистрибутивах, разработанных на основе этих дистрибутивов.

RPM устанавливает необходимое программное обеспечение в набор программ управления на хосте Linux в режиме записи базы данных. Программное обеспечение, которое необходимо установить, компилируется и упаковывается, а запись базы данных по умолчанию в упакованном программном обеспечении фиксирует зависимости, необходимые для установки программного обеспечения. Когда пользователь устанавливает программное обеспечение на хост Linux, RPM проверяет, соответствуют ли зависимости на этом хосте требованиям, зависящим от записанных в него данных.

  • Если это так, установите программное обеспечение.

  • Если это не так, не устанавливайте программное обеспечение. Во время установки вся информация о программном обеспечении записывается в базу данных RPM для последующих запросов, проверки и удаления.

Путь установки пакетов RPM по умолчанию

Как правило, RPM использует путь установки по умолчанию. Путь установки по умолчанию можно запросить, выполнив команду, и он будет подробно описан в следующих разделах.

Пути установки RPM и их значение:

  • /etc/ — каталог установки файла конфигурации.

  • /usr/bin/ — каталог установки исполняемых команд.

  • /usr/lib/ — путь для хранения библиотеки функций, используемой программой.

  • /usr/share/doc — расположение для хранения основного руководства пользователя программного обеспечения.

  • /usr/share/man/ — путь для хранения файла справки.

Вы можете вручную указать путь установки RPM, но этот способ использовать не рекомендуется. После указания пути установки вручную все установочные файлы устанавливаются по указанному пути, а команду запроса пути установки в системе использовать нельзя. Эта команда может быть идентифицирована системой только после ручной настройки.

Параметры команды rpm

Проверка подписи RPM программного пакета

Перед установкой пакета RPM на хосте Linux проверьте подпись PGP. Убедившись в целостности подписи и правильности ее источника, выполните команду rpm --checksig, чтобы проверить достоверность:

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

Установка пакетов RPM

Чтобы установить пакеты RPM в Linux, используйте параметр -i в команде rpm.

rpm -ivh nano-2.3.1-10.el7.x86_64.rpm
  • -i: устанавливает программный пакет.

  • -v: отображает подробную информацию.

  • -h: выводит список флагов во время установки пакета.

Запрос установленного пакета RPM

Чтобы запросить пакет RPM (dnf), установленный в системе Linux, используйте параметр -q в команде rpm.

rpm -q dnf
  • -q: операция запроса.

Если указанный пакет не установлен, отображается следующее сообщение об ошибке:

package dnf is not installed

Запрос всех установленных пакетов RPM

Чтобы запросить все пакеты RPM, установленные в Linux, используйте параметр -qa в команде rpm.

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 сочетайте его с символом вертикальной черты |, чтобы повысить точность поиска.

Запрос сведений об установленном пакете RPM

Используйте параметр -qi в команде rpm, чтобы запросить сведения об установленном в системе пакете RPM.

rpm -qi python3

Пример вывода:

Name        : python3
Version     : 3.9.9
Release     : 7.oe2203
Architecture: x86_64
Install Date: Sat 09 Jul 2022 06:02:47 PM CST
Group       : Unspecified
Size        : 35916839
License     : Python
Signature   : RSA/SHA1, Wed 30 Mar 2022 11:29:30 AM CST, Key ID d557065eb25e7f66
Source RPM  : python3-3.9.9-7.oe2203.src.rpm
Build Date  : Tue 15 Mar 2022 08:00:00 AM CST
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. Is has modules,

Запрос всех файлов в пакете RPM

Чтобы запросить список файлов пакета RPM, используйте параметр -qlp в команде rpm.

rpm -qlp pkgship-3.0.0-1.oe2203.noarch.rpm

Запрос зависимостей пакета RPM

Чтобы запросить список пакетов зависимостей, скомпилированных указанным пакетом RPM, используйте параметр -qRp в команде rpm.

rpm -qRp pkgship-3.0.0-1.oe2203.noarch.rpm

Проверка всех установленных пакетов RPM

Для проверки установленного пакета RPM используйте параметр -Va в команде rpm, чтобы сравнить информацию о файлах, установленных в пакете, с информацией о файлах, полученной из метаданных пакета, хранящихся в базе данных RPM.

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/grub/grubenv

Поля вывода команды rpm -Va и их значение:

  • S — меняется длина файла.

  • M — меняется разрешение на доступ или тип файла.

  • 5 — меняется контрольная сумма MD5.

  • D — меняются атрибуты узла устройства.

  • L — меняется символическая ссылка файла.

  • U — меняется владелец файла, подкаталога или узла устройства.

  • G — меняется группа файла, подкаталога или узла устройства.

  • T — меняется время последнего изменения файла.

Запрос пакета RPM определенного файла

Чтобы запросить пакет RPM, предоставляющего определенный двоичный файл в Linux, используйте параметр -qf в команде rpm.

rpm -qf /usr/share/doc/pkgship

Пример вывода:

pkgship-3.0.0-1.oe2203.noarch

Запрос файлов в установленном пакете RPM

Чтобы запросить список установочных файлов пакета RPM, используйте параметр -ql в команде rpm:

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

Запрос недавно установленных пакетов RPM

Linux — это многопользовательская ОС. Во время работы с Linux другие пользователи могли установить некоторые программные пакеты. Чтобы запросить недавно установленные пакеты в системе, используйте параметры -qa --last в команде rpm:

rpm -qa --last

Пример вывода:

ntp-4.2.8p15-5.oe2203.x86_64        Sat 30 Jul 2022 05:35:44 PM CST
ntpstat-0.6-3.oe2203.noarch         Sat 30 Jul 2022 05:35:43 PM CST
ntp-help-4.2.8p15-5.oe2203.noarch   Sat 30 Jul 2022 05:35:43 PM CST
autogen-5.18.16-2.oe2203.x86_64     Sat 30 Jul 2022 05:35:43 PM CST
redis-4.0.14-1.oe2203.x86_64        Sat 30 Jul 2022 04:43:47 PM CST
elasticsearch-7.10.1-1.x86_64       Sat 30 Jul 2022 04:40:07 PM CST
gpg-pubkey-d88e42b4-52371eca        Sat 30 Jul 2022 04:38:58 PM CST

Запрос только документов установленных пакетов RPM

Вы можете получить справочную информацию по любой команде на странице руководства по Linux (путь для хранения документов /usr/share/doc/<package>-<version>/docs/). Чтобы запросить список документов, связанных с установленными пакетами RPM, используйте параметр -qdf в команде rpm и введите путь к двоичному файлу:

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

Обновление установленного пакета RPM

Вы можете легко обновить установленный пакет RPM до последней версии, используя параметр -Uvh в команде rpm.

При обновлении установленного пакета RPM старый пакет RPM удаляется, и устанавливается новый пакет RPM.
rpm -Uvh pkgship-3.0.0-1.oe2203.noarch.rpm

Удаление установленного пакета RPM

Чтобы удалить установленный в системе пакет RPM, используйте параметр -ev или -e в команде rpm.

rpm -ev pkgship

Восстановление поврежденной базы данных RPM

При попытке обновить систему с помощью команды yum update может появиться сообщение об ошибке, указывающее, что база данных RPM повреждена. Если вы получили такое сообщение, используйте параметр --rebuilddb в команде rmp, чтобы перестроить базу данных.

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

Проверка исправления уязвимостей в конкретных пакетах

Вы можете использовать параметр --changelog в команде rpm и ввести соответствующий идентификатор CVE:

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

Импорт ключа GPG RPM

По умолчанию при добавлении в систему Linux нового репозитория ключ GPG импортируется автоматически. Вы также можете использовать параметр --import в команде rpm, чтобы вручную импортировать ключ GPG RPM для проверки целостности пакета при загрузке его из репозитория:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-OpenEuler-22.03-LTS

Команды dnf

autoremove

Удаляет все ненужные программные пакеты, установленные из-за отношений зависимости.

check-update

|Проверяет наличие обновлений программного пакета.

clean

Удаляет кешированные данные.

distro-sync

Синхронизирует установленный программный пакет с последней доступной версией.

downgrade

Понижает версию программного пакета.

group

Отображает или использует информацию о группе.

history

Отображает или использует историю транзакций.

info

Отображает подробную информацию о пакете или группе пакетов.

install

Устанавливает один или несколько программных пакетов в Linux.

list

Выводит один программный пакет или группу программных пакетов.

makecache

Создает кеш метаданных.

provides

Выполняет поиск программного пакета, предоставляющего указанное содержимое.

reinstall

Переустанавливает пакет.

remove

Удаляет один или несколько программных пакетов из системы.

repolist

Отображает настроенный источник репозитория программного обеспечения.

repository-package

Выполняет команды для всех программных пакетов в указанном репозитории.

search

Выполняет поиск указанной строки символов в сведениях о программном пакете.

updateinfo

Отображает сводную информацию о пакете.

upgrade

Обновляет один или несколько программных пакетов в Linux.

Отображение настроенных репозиториев программного обеспечения

По умолчанию добавлен параметр --enabled для отображения включенных репозиториев программного обеспечения.

dnf repolist --enabled

Пример вывода:

repo id                      repo name
EPOL                         EPOL
OS                           OS
debuginfo                    debuginfo
everything                   everything
pkgship_elasticsearch        Elasticsearch repository
source                       source
update                       update

Аргументы:

  • --all: отображает все репозитории программного обеспечения.

  • --disabled: отображает отключенные репозитории программного обеспечения.

  • --enabled: отображает включенные репозитории (используется по умолчанию).

Установка одного или нескольких программных пакетов

Вы можете выполнить команду install, чтобы установить пакеты RPM.

dnf install gcc

Во время установки программного пакета могут присутствовать конфликтующие пакеты или пакеты, которые невозможно установить. Вы можете добавить к команде параметр --allowerasing, чтобы заменить конфликтующие пакеты, или параметр --skip-broken, чтобы пропустить пакеты, которые невозможно установить:

dnf install gcc glibc --allowerasing --skip-broken

При использовании dnf для установки программного пакета, добавьте параметр --installroot, чтобы задать корневой каталог для установки программного пакета:

dnf install gcc --installroot /opt/

Если вам нужно временно указать источник репозитория для установки, можно добавить параметр --setopt=reposdir=, чтобы указать каталог загрузки источника репозитория:

dnf install <package> --setopt=reposdir=...

Если во время установки интерактивное подтверждение не требуется, можно добавить параметр -y или --assumeyes, чтобы все устанавливаемые программные пакеты автоматически отвечали Да:

dnf install gcc --assumeyes

Чтобы установить пакет RPM, указав конкретный источник репозитория, можно использовать параметр --repo или --enablerepo. Для возврата в исходное состояние можно также использовать параметр --disablerepo, чтобы отключить соответствующий источник репозитория. Рекомендуется использовать параметр --repo для установки пакета RPM.

dnf install gcc --repo=openEuler22.03-lts

Или:

dnf install gcc --enablerepo=openEuler22.03-lts

Переустановка программного пакета

Вы можете выполнить команду reinstall, чтобы переустановить программный пакет в системе.

dnf reinstall <package>

Обновление одного или нескольких программных пакетов

Вы можете использовать команду upgrade для обновления одного или нескольких программных пакетов в Linux:

dnf upgrade <package>

Кроме того, вы можете выполнить команду update, чтобы обновить один или несколько программных пакетов:

dnf update <package>

Понижение версии программного пакета

Если возникает проблема совместимости из-за слишком поздней версии программного пакета, можно понизить версию этого пакета:

dnf downgrade <package>

Вывод одного программного пакета или группы программных пакетов

Вы можете выполнить команду list, чтобы просмотреть программные пакеты, установленные в системе, и программные пакеты в настроенном репозитории.

dnf list

Пример вывода:

Installed
Box2D.x86_64                       2.4.1-7.fc36
ImageMagick.x86_64                 1:6.9.12.50-1.fc36
ImageMagick-libs.x86_64            1:6.9.12.50-1.fc36
LibRaw.x86_64                      0.20.2-5.fc36
Installable pacakges
389-ds-base.src                    1.4.3.20-1.oe2203
389-ds-base.x86_64                 1.4.3.20-1.oe2203
389-ds-base-debuginfo.x86_64       1.4.3.20-1.oe2203
389-ds-base-debugsource.x86_64     1.4.3.20-1.oe2203
389-ds-base-devel.x86_64           1.4.3.20-1.oe2203

Можно добавить параметры для фильтрации отображаемого списка пакетов.

  • --all: отображает все программные пакеты (используется по умолчанию).

  • -- available: отображает только доступные программные пакеты.

  • --installed: отображает только установленные программные пакеты.

  • --extras: отображает только дополнительные программные пакеты.

  • --updates: отображает только программные пакеты, которые необходимо обновить.

  • --upgrades: отображает только программные пакеты, подлежащие обновлению.

  • --autoremove: отображает только программные пакеты, которые необходимо удалить.

  • --recent: отображает недавно измененные программные пакеты.

Запрос сведений о программном пакете

Вы можете выполнить команду info, чтобы запросить информацию о программном пакете.

dnf info <package>

Пример вывода:

Name         : rpm
Version      : 4.17.0
Release      : 8.oe2203
Architecture : x86_64
Size         : 2.5 M
Source       : rpm-4.17.0-8.oe2203.src.rpm
Repository   : @System
From repo    : anaconda
Summary      : RPM Package Manager
URL          : http://www.rpm.org/
License      : GPLv2+
Desription   : The RPM Package Manager (RPM) is a powerful package manament system capability as below

Поиск программного пакета

Если вам нужно установить программный пакет в системе, но вы не помните его полное имя, можно выполнить команду search для поиска соответствующего пакета:

dnf search <template>

Удаление одного или нескольких программных пакетов

Вы можете выполнить команду remove, чтобы удалить просроченный или повторяющийся пакет программного обеспечения:

dnf remove <package>

Аргументы:

  • --duplicates: удаляет установленные (дублирующиеся) программные пакеты.

  • --oldinstallonly: удаляет программные пакеты категории installonly, у которых истек срок действия.

Автоматическое удаление программных пакетов, установленных из-за отношений зависимости

Вы можете выполнить команду autoremove, чтобы удалить ненужные программные пакеты, установленные из-за отношений зависимости.

dnf autoremove

Настройка SSH

Знакомство с сервисом SSH

Secure Shell (SSH) — это надежный протокол, обеспечивающий безопасность сеансов удалённого входа в систему и других сетевых сервисов. Протокол SSH способен эффективно предотвращать утечку информации во время удалённого управления. SSH шифрует передаваемые данные, чтобы предотвратить спуфинг сервера доменных имен (DNS) и IP-спуфинг. OpenSSH создавался в качестве альтернативы проприетарному протоколу SSH, основанной на открытом коде.

Настройка сервиса SSH

  1. Отредактируйте файл /etc/ssh/sshd_config.

  2. Перезапустите службу sshd:

    systemctl restart sshd
  3. Проверьте статус службы sshd:

    systemctl status sshd

Основные настройки конфигурации SSH:

Protocol

Версия протокола.

AllowUsers

Список пользователей, которым разрешён вход по SSH.

DenyUser

Список пользователей, которым запрещён вход по SSH.

ClientAliveInterval

Ограничение по времени на поддержание сессии активной в секундах.

PermitRootLogin

Запрет пользователю root на вход по SSH.

Port

Номер порта, который должен слушать сервер SSH.

PasswordAuthentication

Разрешение на авторизацию с помощью паролей.