Linux с нуля до LPIC-1: Основы системного администрирования

Комплексный курс для начинающих, охватывающий ключевые темы сертификации LPIC-1: от установки системы до настройки сети и безопасности. Вы научитесь работать в командной строке, управлять процессами, пользователями и файловыми системами.

1. Архитектура системы, установка Linux и управление пакетами (RPM и Debian)

Архитектура системы, установка Linux и управление пакетами (RPM и Debian)

Добро пожаловать в курс «Linux с нуля до LPIC-1». Это первая статья, с которой начнется ваше погружение в мир профессионального системного администрирования. Сертификация LPIC-1 (Linux Professional Institute Certification) — это золотой стандарт для администраторов начального и среднего уровня. Она подтверждает, что вы понимаете, как работает система «под капотом», а не просто умеете нажимать кнопки в графическом интерфейсе.

В этой статье мы разберем фундамент: как Linux взаимодействует с железом, как правильно разбить диск перед установкой и, самое главное, как управлять программным обеспечением. В мире Linux установка программ кардинально отличается от привычного «скачал .exe и нажал Далее».

1. Архитектура системы и оборудование

Прежде чем устанавливать Linux, необходимо понять, как операционная система взаимодействует с аппаратным обеспечением. Linux — это модульная система.

!Слои архитектуры Linux: от аппаратного обеспечения до пользователя

Роль ядра (Kernel)

Ядро — это сердце операционной системы. Оно управляет памятью, процессами и, что важно для нас сейчас, драйверами устройств. В отличие от Windows, где драйверы часто нужно скачивать отдельно, в Linux большинство драйверов уже встроено в ядро.

Чтобы узнать, какое оборудование видит ваша система, используются следующие команды:

* lspci — отображает устройства, подключенные к шине PCI (видеокарты, сетевые карты). * lsusb — показывает USB-устройства. * lsmod — выводит список загруженных модулей ядра (драйверов).

Процесс загрузки: BIOS и UEFI

Любая установка начинается с загрузки. Здесь важно различать две технологии:

  • BIOS (Basic Input/Output System) — старая система. Использует таблицу разделов MBR (Master Boot Record). Ограничение MBR — поддержка дисков только до 2 ТБ и максимум 4 первичных раздела.
  • UEFI (Unified Extensible Firmware Interface) — современная замена BIOS. Использует таблицу разделов GPT (GUID Partition Table). Поддерживает огромные диски и неограниченное количество разделов.
  • > Знание различий между BIOS/MBR и UEFI/GPT критически важно для успешной загрузки системы. Подробнее об этом можно почитать в документации Arch Linux.

    2. Установка Linux и разметка диска

    Одна из ключевых тем экзамена LPIC-1 (Topic 102) — это планирование разметки жесткого диска. В Linux нет дисков C: или D:. Есть единое дерево каталогов, начинающееся с корня /.

    Основные разделы

    При установке рекомендуется создавать как минимум следующие разделы:

  • / (root) — корневой раздел, где живет система.
  • /boot — здесь хранятся ядро и загрузчик (Grub). Для UEFI часто требуется отдельный EFI-раздел.
  • /home — раздел для пользовательских данных. Если вы переустановите систему, но сохраните этот раздел, ваши файлы останутся нетронутыми.
  • swap — раздел подкачки.
  • Расчет Swap (Раздела подкачки)

    Swap используется, когда оперативной памяти (RAM) не хватает, или для режима гибернации. Раньше существовало правило «Swap должен быть в 2 раза больше RAM», но для современных систем с большим объемом памяти это неактуально.

    Для расчета рекомендуемого размера Swap () можно использовать упрощенную логику:

    Где — размер раздела подкачки в ГБ, — объем оперативной памяти в ГБ, а — добавочный коэффициент для гибернации. Примечание: это классическая рекомендация для экзамена, на практике подходы могут варьироваться.

    3. Управление пакетами

    Это самая объемная и важная часть данной темы. В Linux программы распространяются в виде пакетов. Пакет — это архив, содержащий скомпилированные файлы программы, конфигурации и метаданные.

    Главная проблема, которую решают менеджеры пакетов — это зависимости. Если программе A нужна библиотека B, менеджер пакетов сам найдет и установит B.

    Существует два основных семейства дистрибутивов, которые рассматриваются в LPIC-1:

  • Debian-family (Debian, Ubuntu, Mint) — используют формат .deb.
  • Red Hat-family (RHEL, CentOS, Fedora, Rocky) — используют формат .rpm.
  • Семейство Debian (dpkg и apt)

    Здесь есть два уровня инструментов:

    #### Низкоуровневый: dpkg Утилита dpkg работает только с локальными .deb файлами. Она не умеет скачивать зависимости из интернета.

    * Установка пакета: dpkg -i package_name.deb * Удаление пакета: dpkg -r package_name * Полное удаление (с конфигами): dpkg -P package_name * Просмотр установленных пакетов: dpkg -l * Информация о файле пакета: dpkg -I package_name.deb

    #### Высокоуровневый: APT Advanced Package Tool (apt или устаревший apt-get) — это надстройка над dpkg. Он скачивает пакеты из репозиториев (хранилищ в интернете).

    Конфигурация репозиториев находится в файле /etc/apt/sources.list.

    Основные команды:

    Семейство Red Hat (rpm и yum/dnf)

    Аналогичная структура, но другие команды.

    #### Низкоуровневый: rpm RPM (Red Hat Package Manager) работает с локальными файлами. Как и dpkg, он не качает зависимости.

    * Установка: rpm -ivh package.rpm (где i — install, v — verbose, h — hash/progress bar) * Обновление: rpm -Uvh package.rpm * Удаление: rpm -e package_name (erase) * Проверка всех установленных пакетов: rpm -qa * Узнать, какому пакету принадлежит файл: rpm -qf /path/to/file

    #### Высокоуровневый: YUM и DNF yum (Yellowdog Updater, Modified) — классический менеджер. dnf (Dandified YUM) — его современная, более быстрая версия. В большинстве современных систем yum — это просто ссылка на dnf.

    Репозитории хранятся в директории /etc/yum.repos.d/ в виде файлов .repo.

    Основные команды:

    Сравнение команд

    | Действие | Debian/Ubuntu (apt) | RHEL/CentOS (dnf) | | :--- | :--- | :--- | | Обновить список | apt update | dnf check-update | | Установить | apt install pkg | dnf install pkg | | Удалить | apt remove pkg | dnf remove pkg | | Обновить систему | apt upgrade | dnf upgrade |

    4. Библиотеки и зависимости

    Программы в Linux часто используют общие библиотеки (shared libraries), чтобы экономить место. Если вы удалите библиотеку, которую использует другая программа, программа перестанет работать.

    Чтобы посмотреть, какие библиотеки требует исполняемый файл, используется команда ldd:

    Вывод покажет список файлов .so (Shared Object), необходимых для работы bash.

    Управление библиотеками осуществляется через кэш, который обновляется командой ldconfig. Конфигурация путей поиска библиотек находится в /etc/ld.so.conf.

    Заключение

    Мы разобрали базу, необходимую для установки и первичной настройки Linux. Понимание того, как работают менеджеры пакетов rpm и dpkg, а также их высокоуровневые надстройки dnf и apt, является обязательным навыком для любого администратора. В следующей статье мы перейдем к работе в командной строке и изучению основных команд GNU.

    Теперь вы готовы проверить свои знания на практике.

    2. Командная строка GNU: работа с файлами, потоками и текстовыми редакторами

    Командная строка GNU: работа с файлами, потоками и текстовыми редакторами

    В предыдущей статье мы разобрали архитектуру Linux, процесс загрузки и управление пакетами. Теперь, когда ваша система установлена и готова к работе, пришло время открыть «черный ящик» — терминал. Для системного администратора командная строка (Shell) — это основной инструмент взаимодействия с системой. В отличие от графического интерфейса, который скрывает детали, командная строка дает вам полный контроль.

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

    Основы командной оболочки (Shell)

    Когда вы открываете терминал, вы запускаете программу-оболочку. Самая популярная оболочка в Linux — это Bash (Bourne Again Shell). Она принимает ваши команды, интерпретирует их и передает ядру операционной системы.

    Переменные окружения

    Оболочка использует переменные для хранения информации о сессии. Одной из самых важных является переменная PATH. Она содержит список директорий, в которых система ищет исполняемые файлы команд.

    Чтобы посмотреть содержимое переменной, используется команда echo:

    ``bash echo SBN$ — количество переданных блоков. Это помогает понять, почему команда ls -s показывает размер в блоках, который может отличаться от реального размера файла в байтах.

    Обработка текста

    В Linux конфигурации — это текст. Поэтому умение обрабатывать текст в консоли обязательно.

    * cat — вывести содержимое файла на экран. * less — постраничный просмотр длинных файлов (выход через q). * head / tail — показать начало или конец файла. tail -f позволяет следить за логами в реальном времени. * grep — поиск текста по шаблону. * wc (word count) — подсчет строк, слов и символов.

    Текстовые редакторы: vi

    На экзамене LPIC-1 от вас требуют базового знания редактора vi (или его улучшенной версии vim). Он есть на любой системе Linux, даже в аварийном режиме.

    У vi есть два основных режима:

  • Командный режим (по умолчанию) — клавиши выполняют команды (перемещение, удаление).
  • Режим вставки — клавиши печатают текст.
  • Шпаргалка по vi

    * i — перейти в режим вставки (Insert). * Esc — вернуться в командный режим. * :w — сохранить файл (write). * :q — выйти (quit). * :wq — сохранить и выйти. * :q! — выйти без сохранения (если что-то сломали). * dd — удалить (вырезать) текущую строку. * u — отмена последнего действия (undo).

    > Если вы случайно застряли в vi и не знаете, как выйти: нажмите Esc несколько раз, затем наберите :q! и нажмите Enter`.

    Заключение

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

    В следующей статье мы углубимся в тему, которая обеспечивает безопасность системы: «Права доступа, пользователи и группы».

    3. Администрирование: управление пользователями, правами доступа и системными процессами

    Администрирование: управление пользователями, правами доступа и системными процессами

    В предыдущих статьях мы установили Linux, разобрались с пакетами и научились работать в командной строке. Теперь мы переходим к одной из самых фундаментальных тем в администрировании — безопасности и управлению ресурсами. Linux изначально создавался как многопользовательская система. Это означает, что на одном компьютере могут одновременно работать сотни пользователей, и задача администратора — гарантировать, что они не будут мешать друг другу и не получат доступ к чужим данным.

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

    1. Пользователи и группы

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

    Суперпользователь (Root)

    В каждой системе есть специальный пользователь с именем root и идентификатором (UID) равным 0. Это администратор с неограниченными правами. Он может читать любые файлы, останавливать любые процессы и даже удалить ядро системы во время её работы.

    > Важно: Никогда не работайте под root постоянно. Для выполнения административных задач используйте команду sudo или временно переключайтесь через su -.

    Где хранятся пользователи?

    В отличие от Windows, где база пользователей скрыта глубоко в реестре, в Linux это простые текстовые файлы:

  • /etc/passwd — основная информация о пользователях. Этот файл доступен для чтения всем.
  • /etc/shadow — здесь хранятся хеши паролей. Доступен только root.
  • /etc/group — информация о группах.
  • Давайте взглянем на структуру строки в /etc/passwd:

    Поля разделены двоеточием: * user — логин. * x — заглушка пароля (сам пароль в shadow). * 1000 — UID (User ID). * 1000 — GID (Group ID) основной группы. * User Name — комментарий (обычно полное имя). * /home/user — домашняя директория. * /bin/bash — оболочка по умолчанию.

    Управление пользователями

    Для создания и модификации пользователей используются следующие команды:

    * useradd — низкоуровневая утилита для создания пользователя. * Пример: useradd -m -s /bin/bash ivan (создать пользователя ivan с домашней директорией и оболочкой bash). * passwd — задать или изменить пароль. * Пример: passwd ivan. * usermod — изменение параметров существующего пользователя. * Пример: usermod -aG sudo ivan (добавить ивана в группу sudo). * userdel — удаление пользователя. * Пример: userdel -r ivan (удалить вместе с домашней директорией).

    2. Права доступа к файлам

    Это ключевая тема экзамена LPIC-1 (Topic 104.5). Если вы выполните команду ls -l, вы увидите что-то вроде -rwxr-xr--.

    !Структура строки прав доступа: тип файла, владелец, группа и остальные.

    Расшифровка прав

    Права делятся на три категории для трех субъектов (User, Group, Others):

    | Символ | Значение | Для файла | Для директории | | :--- | :--- | :--- | :--- | | r (read) | Чтение | Можно открыть и прочитать содержимое | Можно просмотреть список файлов (ls) | | w (write) | Запись | Можно изменить или удалить файл | Можно создавать и удалять файлы внутри директории | | x (execute)| Исполнение | Файл можно запустить как программу | В директорию можно «войти» (cd) |

    Числовая нотация (Octal)

    В Linux права часто записываются числами. Каждому праву соответствует бит: * r = 4 * w = 2 * x = 1 * - = 0

    Формула расчета прав для одной группы пользователей выглядит так:

    Где — итоговое числовое значение прав (от 0 до 7), — наличие права на чтение (1 или 0), — наличие права на запись (1 или 0), — наличие права на исполнение (1 или 0).

    Например, права rwx (чтение, запись, исполнение) это . Права r-x (чтение и исполнение) это .

    Изменение прав и владельцев

  • chmod (change mode) — меняет права доступа.
  • * chmod 755 file — владельцу всё (7), группе и остальным только чтение и исполнение (5). * chmod u+x file — добавить владельцу (user) право на исполнение.
  • chown (change owner) — меняет владельца.
  • * chown user:group file — сменить и владельца, и группу.

    Специальные биты и Umask

    Помимо стандартных прав, существуют специальные биты:

    SUID (Set User ID) — при запуске файла программа работает с правами владельца файла*, а не того, кто запустил. Пример: утилита passwd. * SGID (Set Group ID) — для директорий: новые файлы наследуют группу директории. * Sticky Bit — для директорий: удалять файлы может только их владелец (используется в /tmp).

    Когда вы создаете новый файл, его права определяются маской umask. Umask указывает, какие права нужно отнять от базовых (666 для файлов, 777 для директорий).

    Формула расчета итоговых прав:

    Где — итоговые права файла, — базовые права (обычно 666 или 777), а — значение маски (например, 022). Примечание: это упрощенная логика, на самом деле происходит побитовая операция AND NOT.

    3. Управление процессами

    Любая запущенная программа в Linux становится процессом. У каждого процесса есть уникальный номер — PID (Process ID).

    Самый первый процесс, который запускает ядро — это init (или systemd в современных системах). Его PID всегда равен 1.

    Мониторинг процессов

    Для просмотра процессов используются две основные утилиты:

  • ps (process status) — «снимок» текущих процессов.
  • * ps aux — показать все процессы всех пользователей. * ps -ef — альтернативный формат вывода.
  • top — интерактивный диспетчер задач. Обновляется в реальном времени. Нажмите q для выхода.
  • Фоновый и активный режим

    Если вы запустите команду, которая выполняется долго (например, копирование большого файла), терминал будет занят. Вы можете отправить процесс в фон:

    * Добавьте & в конце команды: sleep 100 &. * Если процесс уже запущен, нажмите Ctrl+Z (приостановить), а затем введите bg (background). * Чтобы вернуть процесс на передний план, используйте команду fg.

    Сигналы и завершение процессов

    Иногда программы зависают. Чтобы их остановить, мы посылаем им сигналы с помощью команды kill.

    Основные сигналы: * SIGTERM (15) — «Пожалуйста, завершись». Программа может сохранить данные и корректно закрыться. Это сигнал по умолчанию. * SIGKILL (9) — «Умри немедленно». Ядро убивает процесс мгновенно. Данные могут быть потеряны.

    Пример:

    Приоритеты (Niceness)

    Linux — это система с разделением времени. Процессорное время распределяется между задачами в зависимости от их приоритета, который называется Nice value.

    Диапазон значений Nice: * От -20 (наивысший приоритет, «жадный» процесс). * До +19 (низший приоритет, «добрый» процесс).

    Стандартный приоритет равен 0. Изменить приоритет можно командами nice (при запуске) или renice (для уже запущенного процесса).

    Заключение

    Мы рассмотрели базу администрирования Linux. Теперь вы понимаете, как создавать пользователей, защищать файлы с помощью прав доступа и управлять поведением программ через процессы. Эти знания покрывают значительную часть тем 104, 105 и 107 экзамена LPIC-1.

    В следующей статье мы перейдем к одной из самых интересных тем — написанию скриптов на Bash и автоматизации задач.

    4. Устройства, файловые системы Linux и стандарты иерархии (FHS)

    Устройства, файловые системы Linux и стандарты иерархии (FHS)

    Добро пожаловать на четвертый модуль курса «Linux с нуля до LPIC-1». В предыдущих статьях мы научились устанавливать систему, работать в командной строке и управлять пользователями. Теперь пришло время заглянуть глубже и разобраться, как Linux хранит данные и работает с оборудованием.

    Для пользователя Windows привычно видеть диски C:, D: и E:. В Linux такой концепции не существует. Здесь царит единое дерево каталогов, а жесткие диски, флешки и даже ваша видеокарта представлены в виде файлов. Понимание этой абстракции и стандарта FHS (Filesystem Hierarchy Standard) — это то, что отличает профессионала от любителя.

    1. Устройства как файлы

    Один из главных принципов Unix-подобных систем гласит: «Всё есть файл». Это означает, что для взаимодействия с аппаратным обеспечением ядро создает специальные файлы-интерфейсы в директории /dev.

    Блочные и символьные устройства

    Если вы выполните команду ls -l /dev, вы увидите множество файлов. Обратите внимание на первый символ в строке прав доступа:

    * b (block device) — блочные устройства. Они передают данные блоками (обычно по 512 или 4096 байт). Примеры: жесткие диски, SSD, USB-накопители. * c (character device) — символьные устройства. Они передают данные потоком, побайтово. Примеры: клавиатура, мышь, терминал, звуковая карта.

    Именование дисков

    На экзамене LPIC-1 (Topic 101) критически важно понимать, как именуются накопители. Старые интерфейсы IDE (hda, hdb) ушли в прошлое. В современных системах Linux используется следующая логика:

  • SATA/SCSI/USB диски: именуются как sd (SCSI Disk) + буква.
  • * /dev/sda — первый физический диск. * /dev/sdb — второй физический диск.
  • NVMe накопители: именуются как nvme + номер контроллера + n + номер пространства имен.
  • * /dev/nvme0n1 — первый NVMe диск.
  • Виртуальные диски (в облаках KVM/Xen): часто именуются как vda, vdb.
  • Разделы (Partitions)

    Диск делится на разделы. К имени диска добавляется цифра: * /dev/sda1 — первый раздел на первом диске. * /dev/sdb3 — третий раздел на втором диске.

    !Визуализация логики именования физических дисков и их разделов в каталоге /dev

    2. Файловые системы

    Раздел диска — это просто контейнер. Чтобы хранить в нем файлы, его нужно «отформатировать», то есть создать файловую систему (ФС). Файловая система — это набор правил, определяющих, как данные физически располагаются на носителе.

    Популярные файловые системы в Linux

  • ext4 (Fourth Extended Filesystem) — стандарт де-факто для большинства дистрибутивов. Надежная, проверенная временем, поддерживает журналирование.
  • XFS — высокопроизводительная ФС, отлично работающая с большими файлами. Часто используется по умолчанию в RHEL/CentOS.
  • Btrfs — современная ФС с поддержкой снимков (snapshots) и встроенным RAID. Используется в SUSE и Fedora.
  • FAT32/exFAT/NTFS — используются для совместимости с Windows (например, на флешках).
  • Журналирование

    Современные ФС (ext4, XFS) являются журналируемыми. Это значит, что перед записью данных на диск система делает пометку в специальной области — журнале. Если питание внезапно пропадет, система при перезагрузке прочитает журнал и восстановит целостность данных за секунды, вместо того чтобы часами проверять весь диск.

    Создание файловой системы

    Для форматирования раздела используется семейство команд mkfs (make filesystem):

    Емкость и блоки

    Любая файловая система делит пространство диска на блоки фиксированного размера. Расчет общего количества блоков () можно представить формулой:

    Где — общее количество блоков, — полезная емкость раздела в байтах, а — размер одного блока (обычно 4096 байт). Если вы создадите файл размером 1 байт, он все равно займет на диске целый блок (), что называется внутренней фрагментацией.

    3. Монтирование

    В Windows, когда вы вставляете флешку, появляется новый диск F:. В Linux новая файловая система должна быть примонтирована к существующему дереву каталогов. Точка монтирования — это обычная директория, содержимое которой временно подменяется содержимым диска.

    !Процесс монтирования: внешнее устройство интегрируется в единое дерево каталогов

    Команды монтирования

  • mount — подключение ФС.
  • Теперь все файлы, которые вы запишете в /mnt/data, физически окажутся на диске sdb1.

  • umount — отключение ФС.
  • > Важно: Нельзя размонтировать ФС, если она используется (например, вы находитесь внутри этой директории терминалом).

    Постоянное монтирование (/etc/fstab)

    Команда mount работает только до перезагрузки. Чтобы диск монтировался автоматически при старте системы, нужно добавить запись в файл /etc/fstab.

    Вместо имен /dev/sdb1 (которые могут меняться, если переткнуть кабели), рекомендуется использовать UUID (Universally Unique Identifier). Узнать UUID можно командой blkid.

    Пример строки в /etc/fstab:

    4. Стандарт иерархии файловой системы (FHS)

    Чтобы программы, написанные для Debian, работали в Fedora, а администраторы не терялись в новой системе, существует стандарт FHS. Он строго регламентирует, где и какие файлы должны лежать.

    Основные директории корня (/)

    | Директория | Назначение | | :--- | :--- | | /bin | Основные бинарные файлы (команды), доступные всем пользователям (ls, cp, cat). | | /sbin | Системные бинарные файлы, нужные для администрирования (fdisk, mkfs, ip). Обычно требуют прав root. | | /etc | Конфигурационные файлы. Здесь живет настройка всей системы. | | /home | Домашние каталоги пользователей. | | /root | Домашний каталог суперпользователя (root). Обратите внимание, он не в /home! | | /var | Variable (изменяемые) данные: логи (/var/log), почта, базы данных, кэш. | | /tmp | Временные файлы. Обычно очищается при перезагрузке. | | /usr | Unix System Resources. Содержит программы, библиотеки и документацию второго уровня (/usr/bin, /usr/lib). | | /boot | Ядро Linux и файлы загрузчика. | | /dev | Файлы устройств (см. начало статьи). |

    Виртуальные файловые системы

    Существуют директории, которые не занимают места на диске, а существуют только в оперативной памяти:

  • /proc — информация о процессах и ядре. Например, файл /proc/cpuinfo покажет информацию о процессоре, хотя физически этого файла на диске нет.
  • /sys — информация об оборудовании и драйверах (sysfs).
  • Анализ использования диска

    Администратор обязан следить за свободным местом. Для этого есть две главные утилиты:

  • df -h (disk free) — показывает свободное место на всех примонтированных разделах (ключ -h делает вывод читаемым: в ГБ и МБ).
  • du -sh directory_name (disk usage) — показывает размер конкретной директории.
  • Расчет свободного места () в выводе df учитывает зарезервированное пространство для root (обычно 5%):

    Где — доступное пользователям место, — общий объем раздела, — занятое место, а — резерв для суперпользователя, чтобы система могла загрузиться даже при переполнении диска пользователями.

    Заключение

    В этой статье мы разобрали фундамент работы с хранилищем в Linux. Вы узнали, как система именует диски, зачем нужны разные файловые системы и как ориентироваться в стандартной иерархии каталогов FHS. Эти знания необходимы для выполнения задач LPIC-1 по темам 104.1, 104.2 и 104.3.

    В следующем модуле мы перейдем к автоматизации рутины и изучим написание скриптов на Bash, что позволит вам превращать сложные последовательности команд в один клик.

    5. Основы написания Shell-скриптов, настройка сети и базовая безопасность

    Основы написания Shell-скриптов, настройка сети и базовая безопасность

    Добро пожаловать на пятый модуль курса «Linux с нуля до LPIC-1». В предыдущих статьях мы научились устанавливать систему, управлять файлами, пользователями и дисками. Теперь ваша система работает, но она изолирована и требует ручного управления.

    Настоящая сила Linux раскрывается в двух вещах: автоматизации и сети. Системный администратор не должен выполнять одни и те же команды каждый день вручную. Он пишет скрипты. А сервер без сети — это просто большая флешка. В этой статье мы научимся писать сценарии на Bash, настроим сетевое подключение и закроем базовые дыры в безопасности.

    1. Основы Shell Scripting (Сценарии командной строки)

    Скрипт — это просто текстовый файл, в котором записана последовательность команд. Вместо того чтобы вводить их по одной, вы запускаете файл, и оболочка (Shell) выполняет их за вас.

    Структура скрипта и Shebang

    Любой скрипт в Linux должен начинаться со специальной строки, которая называется shebang (шебанг). Она указывает системе, какой интерпретатор использовать для выполнения кода.

    Пример простейшего скрипта hello.sh:

    * #! — это сам shebang. * /bin/bash — путь к интерпретатору (в данном случае Bash).

    Чтобы запустить скрипт, ему нужно дать права на исполнение (вспоминаем тему прав доступа):

    Переменные

    Переменные позволяют хранить данные. В Bash нет типов данных (числа, строки — всё текст). При присваивании пробелы ставить нельзя!

    Условные операторы (if-else)

    Автоматизация невозможна без логики. Конструкция if позволяет скрипту принимать решения.

    !Логическая схема работы условного оператора if-else

    Синтаксис в Bash специфичен. Обратите внимание на пробелы внутри квадратных скобок:

    Циклы (Loops)

    Если нужно выполнить действие много раз (например, создать 100 пользователей), используют циклы.

    Цикл for: bash ss -tulpn `` * -t — TCP. * -u — UDP. * -l — listening (слушающие). * -p — показать процесс (PID). * -n — numeric (показывать порты числами, а не именами).

    Принцип наименьших привилегий (sudo)

    Никогда не сидите под root. Работайте под обычным пользователем. Если нужно выполнить административную команду, используйте sudo.

    Настройка прав доступа к sudo производится в файле /etc/sudoers.

    > Внимание: Никогда не редактируйте /etc/sudoers обычным текстовым редактором! Используйте команду visudo. Она проверяет синтаксис перед сохранением. Ошибка в этом файле может лишить вас прав администратора навсегда.

    Заключение

    Мы рассмотрели три огромных пласта знаний: написание скриптов, сеть и безопасность.

  • Скрипты экономят ваше время и позволяют автоматизировать рутину.
  • Настройка сети через ip` — это базовый навык для подключения сервера к миру.
  • SSH и sudo — это первая линия обороны вашей системы.
  • Теперь у вас есть полный набор инструментов для управления Linux-сервером. В следующей, заключительной статье этого цикла, мы разберем управление логами, планирование задач (cron) и локализацию системы, чтобы собрать все знания воедино перед экзаменом.

    Практикуйтесь в написании циклов и настройке сети на виртуальных машинах — это лучший способ закрепить материал.