200 вопросов по системному администрированию
200 вопросов по системному администрированию
Основы операционных систем и Linux
Вопрос
Что такое ядро операционной системы?
Ответ
Ядро — это центральный компонент операционной системы, управляющий ресурсами компьютера: процессором, памятью, устройствами ввода-вывода. Оно обеспечивает взаимодействие между аппаратным обеспечением и прикладными программами через системные вызовы.
Вопрос
Какие основные типы ядер существуют?
Ответ
Существуют монолитные ядра, микроядра и гибридные ядра. Монолитные ядра реализуют все основные функции в одном адресном пространстве. Микроядра минимизируют функционал в привилегированном режиме, вынося большую часть сервисов в пользовательское пространство. Гибридные ядра сочетают подходы обоих типов.
Вопрос
Что такое системный вызов?
Ответ
Системный вызов — это интерфейс между пользовательским приложением и ядром операционной системы, позволяющий запрашивать выполнение привилегированных операций, таких как чтение файла, создание процесса или выделение памяти.
Вопрос
Что такое дистрибутив Linux?
Ответ
Дистрибутив Linux — это набор программного обеспечения, включающий ядро Linux, системные утилиты, библиотеки, приложения и инструменты установки, собранные в единое целое для удобства использования.
Вопрос
Назовите три популярных дистрибутива Linux и их особенности.
Ответ
Ubuntu — основан на Debian, ориентирован на удобство и широкую аудиторию, использует менеджер пакетов APT.
CentOS Stream — потоковая версия Red Hat Enterprise Linux, подходит для серверов и enterprise-сред.
Arch Linux — ориентирован на опытных пользователей, использует rolling-release модель и менеджер пакетов Pacman.
Файловые системы и управление дисками
Вопрос
Что такое файловая система?
Ответ
Файловая система — это метод организации и хранения данных на носителе, определяющий структуру каталогов, способ хранения метаданных, права доступа и механизмы записи/чтения файлов.
Вопрос
Какие файловые системы используются в Linux?
Ответ
В Linux применяются ext4, XFS, Btrfs, ZFS, ReiserFS. ext4 — наиболее распространённая, обеспечивает надёжность и производительность. XFS эффективна для больших файлов и высокой пропускной способности. Btrfs поддерживает снапшоты, сжатие и контроль целостности.
Вопрос
Что такое inode?
Ответ
Inode — это структура данных в файловой системе Unix-подобных ОС, содержащая метаданные файла: права доступа, владельца, временные метки, размер и указатели на блоки данных. Имя файла хранится отдельно в каталоге.
Вопрос
Как проверить использование дискового пространства?
Ответ
Команда df -h показывает использование дискового пространства по файловым системам в человекочитаемом виде. Команда du -sh /path показывает общий размер указанного каталога.
Пример:
df -h
du -sh /var/log
Вопрос
Что такое LVM?
Ответ
LVM (Logical Volume Manager) — технология управления дисками в Linux, позволяющая объединять физические тома в группу томов, из которой создаются логические тома. Это даёт гибкость в изменении размеров разделов без переразметки диска.
Вопрос
Как увеличить размер логического тома LVM?
Ответ
Увеличение выполняется в два этапа: расширение логического тома и расширение файловой системы.
Пример для ext4:
lvextend -L +10G /dev/vg0/lv_data
resize2fs /dev/vg0/lv_data
Для XFS используется только xfs_growfs после lvextend.
Вопрос
Что такое RAID и какие уровни наиболее распространены?
Ответ
RAID (Redundant Array of Independent Disks) — технология объединения нескольких физических дисков в логический массив для повышения производительности, отказоустойчивости или ёмкости.
RAID 0 — чередование данных без избыточности.
RAID 1 — зеркалирование.
RAID 5 — чередование с паритетом по одному диску.
RAID 10 — комбинация RAID 1 и RAID 0.
Вопрос
Как проверить состояние программного RAID в Linux?
Ответ
Используется команда cat /proc/mdstat или mdadm --detail /dev/mdX.
Пример:
cat /proc/mdstat
mdadm --detail /dev/md0
Управление пользователями и правами
Вопрос
Где хранятся данные о пользователях в Linux?
Ответ
Основные данные о пользователях хранятся в файле /etc/passwd. Хэши паролей — в /etc/shadow. Информация о группах — в /etc/group, а хэши групповых паролей — в /etc/gshadow.
Вопрос
Как создать нового пользователя в Linux?
Ответ
Команда useradd создаёт нового пользователя. Для создания домашнего каталога и копирования скелета используется флаг -m.
Пример:
useradd -m -s /bin/bash alice
Вопрос
Что такое UID и GID?
Ответ
UID (User Identifier) — числовой идентификатор пользователя. GID (Group Identifier) — числовой идентификатор группы. Эти значения используются ядром для контроля доступа к ресурсам.
Вопрос
Как назначить пользователю права sudo?
Ответ
Пользователя добавляют в группу sudo (в Ubuntu/Debian) или wheel (в RHEL/CentOS).
Пример:
usermod -aG sudo alice
Вопрос
Что такое umask?
Ответ
Umask — это маска, определяющая права по умолчанию для вновь создаваемых файлов и каталогов. Она вычитается из максимальных прав (666 для файлов, 777 для каталогов).
Пример: umask 022 даёт файлам права 644, каталогам — 755.
Вопрос
Как изменить владельца файла?
Ответ
Команда chown изменяет владельца и группу файла.
Пример:
chown alice:developers report.txt
Вопрос
Как работают права доступа в Linux?
Ответ
Права доступа задаются тремя категориями: владелец, группа, остальные. Каждая категория имеет три бита: чтение (r), запись (w), выполнение (x). Права могут задаваться символьно (chmod u+x file) или численно (chmod 755 file).
Процессы и управление ресурсами
Вопрос
Что такое процесс в Linux?
Ответ
Процесс — это экземпляр выполняемой программы, имеющий собственное адресное пространство, идентификатор (PID), состояние и ресурсы, выделенные ядром.
Вопрос
Как посмотреть запущенные процессы?
Ответ
Команда ps aux выводит список всех процессов. Команда top или htop предоставляет интерактивный мониторинг в реальном времени.
Вопрос
Что такое демон?
Ответ
Демон — это фоновый процесс, не связанный с терминалом, обычно запускаемый при старте системы для выполнения служебных задач (например, sshd, crond).
Вопрос
Как завершить процесс?
Ответ
Команда kill PID отправляет сигнал TERM процессу. Для принудительного завершения используется kill -9 PID (сигнал KILL).
Вопрос
Что такое сигнал в контексте процессов?
Ответ
Сигнал — это уведомление, отправляемое процессу ядром или другим процессом для изменения его поведения. Примеры: SIGTERM (запрос на завершение), SIGKILL (немедленное завершение), SIGHUP (перезагрузка конфигурации).
Вопрос
Как найти процесс по имени?
Ответ
Используется команда pgrep или ps aux | grep имя.
Пример:
pgrep nginx
ps aux | grep sshd
Вопрос
Что такое загрузка системы (load average)?
Ответ
Load average — среднее количество процессов, находящихся в состоянии выполнения или ожидающих ресурсы CPU, за последние 1, 5 и 15 минут. Значение выше количества ядер может указывать на перегрузку.
Вопрос
Как ограничить ресурсы процесса?
Ответ
Используется механизм cgroups (control groups). В современных системах управление часто осуществляется через systemd с помощью параметров MemoryLimit, CPUQuota и других в unit-файлах.
Пример в unit-файле:
[Service]
MemoryMax=512M
CPUQuota=50%
Сетевые основы
Вопрос
Как проверить сетевое подключение до удалённого хоста?
Ответ
Команда ping проверяет базовую доступность хоста через ICMP. Команда telnet хост порт или nc -zv хост порт проверяет доступность конкретного TCP-порта.
Пример:
ping 8.8.8.8
nc -zv example.com 443
Вопрос
Где хранится конфигурация сетевых интерфейсов в Linux?
Ответ
В современных системах с systemd-networkd — в /etc/systemd/network/. В системах с Netplan (Ubuntu) — в /etc/netplan/. В классических системах — в /etc/network/interfaces (Debian) или /etc/sysconfig/network-scripts/ (RHEL).
Вопрос
Как посмотреть активные сетевые соединения?
Ответ
Команда ss -tuln или netstat -tuln показывает прослушиваемые порты и установленные соединения.
Пример:
ss -tuln
Вопрос
Что такое localhost и 127.0.0.1?
Ответ
localhost — это стандартное имя хоста, сопоставленное с IP-адресом 127.0.0.1, представляющим loopback-интерфейс. Этот интерфейс используется для внутренней связи внутри одной машины.
Вопрос
Как настроить статический IP-адрес в Ubuntu 22.04?
Ответ
Через файл Netplan, например /etc/netplan/01-netcfg.yaml:
network:
version: 2
ethernets:
eth0:
dhcp4: no
addresses: [192.168.1.10/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
Применяется командой:
sudo netplan apply
Диагностика и мониторинг
Вопрос
Как проверить использование оперативной памяти?
Ответ
Команда free -h показывает объём свободной и используемой памяти, включая swap.
Пример:
free -h
Вопрос
Что такое swap?
Ответ
Swap — это область на диске, используемая как дополнительная виртуальная память, когда физическая RAM исчерпана. Может быть отдельным разделом или файлом подкачки.
Вопрос
Как включить файл подкачки?
Ответ
Создаётся файл, форматируется как swap и активируется:
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
Для автоматического монтирования добавляется строка в /etc/fstab:
/swapfile none swap sw 0 0
Вопрос
Как посмотреть журналы системы?
Ответ
В системах с systemd используется команда journalctl. Для просмотра всех логов: journalctl -xe. Для конкретной службы: journalctl -u nginx.
Вопрос
Как найти файл по имени?
Ответ
Команда find ищет файлы в реальном времени. Команда locate использует предварительно построенный индекс.
Примеры:
find /etc -name "*.conf"
locate ssh_config
После установки locate требуется обновить базу: sudo updatedb.
Вопрос
Как проверить, какой процесс слушает определённый порт?
Ответ
Используется команда ss или lsof.
Пример:
ss -tulnp | grep :80
lsof -i :80
Вопрос
Что такое strace и для чего он используется?
Ответ
strace — утилита для трассировки системных вызовов и сигналов процесса. Применяется для диагностики проблем запуска или поведения программ.
Пример:
strace -f -o debug.log nginx
Вопрос
Как проверить целостность файловой системы?
Ответ
Используется утилита fsck. Файловая система должна быть отмонтирована перед проверкой.
Пример:
sudo umount /dev/sdb1
sudo fsck /dev/sdb1
Вопрос
Как узнать, сколько времени работает система?
Ответ
Команда uptime показывает время работы системы, количество пользователей и load average.
Вопрос
Как посмотреть информацию об оборудовании?
Ответ
Команды:
lscpu — информация о процессоре.
lsblk — список блочных устройств.
lspci — устройства PCI.
lsusb — USB-устройства.
dmidecode — подробная информация о железе (требует root).
Управление программным обеспечением и службами
Вопрос
Как установить пакет в Ubuntu/Debian?
Ответ
Используется команда apt install имя_пакета. Перед установкой рекомендуется обновить список пакетов: sudo apt update.
Пример:
sudo apt update
sudo apt install nginx
Вопрос
Как установить пакет в CentOS/RHEL?
Ответ
В современных версиях используется dnf install имя_пакета. В старых версиях — yum install имя_пакета.
Пример:
sudo dnf install httpd
Вопрос
Как обновить все пакеты в системе?
Ответ
В Debian/Ubuntu:
sudo apt update && sudo apt upgrade -y
В RHEL/CentOS/Fedora:
sudo dnf upgrade -y
Вопрос
Как удалить пакет без удаления его зависимостей?
Ответ
В Debian/Ubuntu: apt remove имя_пакета.
Для полного удаления с конфигурацией: apt purge имя_пакета.
Вопрос
Что такое репозиторий в Linux?
Ответ
Репозиторий — это сетевой или локальный источник пакетов программного обеспечения, откуда система получает программы для установки и обновления. Список репозиториев хранится в /etc/apt/sources.list (Debian) или в файлах /etc/yum.repos.d/ (RHEL).
Вопрос
Как проверить, установлен ли пакет?
Ответ
В Debian/Ubuntu:
dpkg -l | grep имя_пакета
В RHEL/CentOS:
rpm -q имя_пакета
Вопрос
Что такое systemd?
Ответ
Systemd — это система инициализации и управления службами в большинстве современных дистрибутивов Linux. Она управляет запуском процессов при загрузке, контролирует службы, журналы, монтирует файловые системы и обрабатывает зависимости между сервисами.
Вопрос
Как запустить службу через systemd?
Ответ
Команда: sudo systemctl start имя_службы.
Пример:
sudo systemctl start sshd
Вопрос
Как включить автозагрузку службы?
Ответ
Команда: sudo systemctl enable имя_службы.
Это создаёт символическую ссылку в директории автозагрузки, чтобы служба стартовала при запуске системы.
Вопрос
Как проверить статус службы?
Ответ
Команда: systemctl status имя_службы.
Вывод показывает, запущена ли служба, её PID, последние строки лога и состояние автозагрузки.
Вопрос
Как перезапустить службу?
Ответ
Команда: sudo systemctl restart имя_службы.
Вопрос
Где хранятся unit-файлы systemd?
Ответ
Системные unit-файлы находятся в /usr/lib/systemd/system/. Пользовательские или переопределённые — в /etc/systemd/system/.
Вопрос
Как создать собственную службу systemd?
Ответ
Создаётся файл в /etc/systemd/system/myapp.service со следующим содержимым:
[Unit]
Description=My Custom App
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/python3 /opt/myapp/app.py
Restart=always
User=myuser
[Install]
WantedBy=multi-user.target
Затем выполняются команды:
sudo systemctl daemon-reload
sudo systemctl enable --now myapp.service
Резервное копирование и восстановление
Вопрос
Какие типы резервного копирования существуют?
Ответ
Полное — копируются все данные.
Инкрементное — копируются только изменения с момента последнего резервного копирования любого типа.
Дифференциальное — копируются изменения с момента последнего полного резервного копирования.
Вопрос
Как создать архив каталога с помощью tar?
Ответ
Команда:
tar -czvf backup.tar.gz /path/to/directory
Флаги:
c— создать архивz— сжать gzipv— подробный выводf— указать имя файла
Вопрос
Как восстановить данные из tar-архива?
Ответ
Команда:
tar -xzvf backup.tar.gz -C /restore/path
Флаг -x означает извлечение.
Вопрос
Как автоматизировать резервное копирование?
Ответ
Используется планировщик задач cron. Например, ежедневное архивирование в 2:00:
0 2 * * * /usr/bin/tar -czf /backups/home_$(date +\%F).tar.gz /home
Обратите внимание: символ % в cron требует экранирования как \%.
Вопрос
Что такое rsync и зачем он нужен?
Ответ
Rsync — утилита для эффективной синхронизации файлов и каталогов между локальными и удалёнными системами. Она передаёт только изменённые части файлов, что экономит трафик и время.
Пример синхронизации:
rsync -avz /local/dir/ user@remote:/remote/dir/
Безопасность
Вопрос
Как подключиться к удалённому серверу по SSH?
Ответ
Команда:
ssh user@hostname
Можно указать порт:
ssh -p 2222 user@hostname
Вопрос
Как сгенерировать SSH-ключ?
Ответ
Команда:
ssh-keygen -t ed25519 -C "your_email@example.com"
Ключи сохраняются в ~/.ssh/id_ed25519 (приватный) и ~/.ssh/id_ed25519.pub (публичный).
Вопрос
Как скопировать публичный ключ на сервер?
Ответ
Используется команда:
ssh-copy-id user@hostname
Или вручную:
cat ~/.ssh/id_ed25519.pub | ssh user@hostname "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Вопрос
Как отключить вход по паролю в SSH?
Ответ
В файле /etc/ssh/sshd_config установить:
PasswordAuthentication no
После этого перезапустить службу:
sudo systemctl restart sshd
Вопрос
Что такое fail2ban?
Ответ
Fail2ban — демон, который анализирует логи и временно блокирует IP-адреса, совершающие подозрительные действия (например, множественные неудачные попытки входа по SSH).
Вопрос
Как настроить простой брандмауэр с помощью ufw?
Ответ
UFW (Uncomplicated Firewall) — упрощённый интерфейс к iptables.
Примеры:
sudo ufw allow 22/tcp # разрешить SSH
sudo ufw allow 80/tcp # разрешить HTTP
sudo ufw enable # включить брандмауэр
sudo ufw status verbose # проверить правила
Вопрос
Как посмотреть активные правила iptables?
Ответ
Команда:
sudo iptables -L -n -v
Флаги:
-L— список правил-n— не разрешать имена (быстрее)-v— подробный вывод
Сетевые службы и инфраструктура
Вопрос
Что такое DNS и зачем он нужен?
Ответ
DNS (Domain Name System) — система преобразования доменных имён (например, example.com) в IP-адреса (например, 93.184.216.34). Это позволяет пользователям использовать понятные имена вместо числовых адресов.
Вопрос
Как проверить, какой DNS-сервер использует система?
Ответ
Просмотреть файл:
cat /etc/resolv.conf
Или использовать:
systemd-resolve --status # в системах с systemd-resolved
Вопрос
Как выполнить DNS-запрос вручную?
Ответ
Используется утилита dig или nslookup.
Пример:
dig example.com A
nslookup example.com
Вопрос
Что такое NTP?
Ответ
NTP (Network Time Protocol) — протокол для синхронизации времени между компьютерами в сети. Это важно для корректной работы логов, сертификатов, распределённых систем.
Вопрос
Как синхронизировать время вручную?
Ответ
В системах с chrony:
sudo chronyc makestep
В системах с systemd-timesyncd:
sudo timedatectl set-ntp true
Вопрос
Как проверить, синхронизировано ли время?
Ответ
Команда:
timedatectl status
Ищите строку System clock synchronized: yes.
Планирование задач и управление логами
Вопрос
Что такое cron?
Ответ
Cron — демон для выполнения задач по расписанию. Задания (crontab) определяют, какие команды запускать и когда.
Вопрос
Как отредактировать crontab текущего пользователя?
Ответ
Команда:
crontab -e
Формат строки:
минута час день_месяца месяц день_недели команда
Пример:
0 3 * * * /scripts/backup.sh
Вопрос
Где хранятся системные cron-задания?
Ответ
В каталогах:
/etc/crontab— основной системный файл/etc/cron.d/— дополнительные задания/etc/cron.hourly/,/etc/cron.daily/и т.д. — скрипты, запускаемые с соответствующей периодичностью
Вопрос
Что такое logrotate?
Ответ
Logrotate — утилита для автоматической ротации, сжатия и удаления старых лог-файлов. Это предотвращает заполнение диска логами.
Вопрос
Где находятся конфигурации logrotate?
Ответ
Основной файл: /etc/logrotate.conf
Дополнительные правила: /etc/logrotate.d/
Пример правила для nginx:
/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
postrotate
systemctl reload nginx
endscript
}
Вопрос
Как вручную запустить logrotate?
Ответ
Команда:
sudo logrotate -f /etc/logrotate.conf
Флаг -f принудительно выполняет ротацию, даже если она не требуется по расписанию.
Виртуализация и контейнеризация
Вопрос
Что такое виртуализация?
Ответ
Виртуализация — технология создания виртуальных версий вычислительных ресурсов (серверов, ОС, хранилищ), позволяющая запускать несколько изолированных окружений на одном физическом оборудовании.
Вопрос
Какие типы виртуализации существуют?
Ответ
Полная виртуализация — гипервизор эмулирует всё оборудование (например, VMware, Hyper-V).
Паравиртуализация — гостевые ОС модифицированы для взаимодействия с гипервизором (Xen).
Виртуализация на уровне ОС — изоляция процессов внутри одной ОС (LXC, Docker).
Вопрос
Что такое KVM?
Ответ
KVM (Kernel-based Virtual Machine) — модуль ядра Linux, превращающий его в гипервизор. Позволяет запускать виртуальные машины с полной изоляцией, используя аппаратную поддержку виртуализации (Intel VT-x, AMD-V).
Вопрос
Как проверить, поддерживает ли процессор виртуализацию?
Ответ
Команда:
grep -E "(vmx|svm)" /proc/cpuinfo
Наличие vmx (Intel) или svm (AMD) означает поддержку.
Вопрос
Что такое контейнер?
Ответ
Контейнер — лёгковесная, изолированная среда выполнения приложения, использующая ядро хостовой ОС, но имеющая собственную файловую систему, процессы и сетевой стек.
Вопрос
Что такое Docker?
Ответ
Docker — платформа для сборки, доставки и запуска приложений в контейнерах. Она использует образы (images) как шаблоны для создания контейнеров и управляет жизненным циклом через демон dockerd.
Вопрос
Как запустить контейнер из образа?
Ответ
Команда:
docker run -d --name myapp nginx
Флаг -d запускает контейнер в фоне.
Вопрос
Как посмотреть запущенные контейнеры?
Ответ
Команда:
docker ps
Для всех контейнеров (включая остановленные):
docker ps -a
Вопрос
Что такое Podman?
Ответ
Podman — альтернатива Docker, не требующая демона. Работает от имени обычного пользователя, совместим с Docker CLI и OCI-образами, обеспечивает лучшую безопасность за счёт отсутствия привилегированного процесса.
Мониторинг и производительность
Вопрос
Какой инструмент показывает использование CPU в реальном времени?
Ответ
Команда top или её улучшенная версия htop. Они отображают загрузку CPU, использование памяти, PID, владельца и команду каждого процесса.
Вопрос
Как определить, какой процесс потребляет больше всего памяти?
Ответ
В top нажмите Shift+M для сортировки по памяти. Или используйте:
ps aux --sort=-%mem | head -n 10
Вопрос
Что такое iostat и зачем он нужен?
Ответ
iostat — утилита из пакета sysstat, показывающая статистику использования устройств ввода-вывода и загрузки CPU. Помогает выявлять узкие места дисковой подсистемы.
Пример:
iostat -x 2
Вопрос
Как проверить производительность диска?
Ответ
Используется утилита dd для базового теста или fio для комплексного.
Пример с dd:
dd if=/dev/zero of=/tmp/testfile bs=1G count=1 oflag=direct
Вопрос
Что такое sar?
Ответ
sar (System Activity Reporter) — инструмент из пакета sysstat для сбора, отображения и сохранения исторических данных о производительности системы: CPU, память, диск, сеть.
Пример:
sar -u 1 5 # загрузка CPU каждую секунду, 5 раз
Вопрос
Как настроить сбор метрик через Prometheus и Node Exporter?
Ответ
Node Exporter — экспортер метрик хоста для Prometheus. Устанавливается как служба:
wget https://github.com/prometheus/node_exporter/releases/latest/download/node_exporter-*.linux-amd64.tar.gz
tar xvfz node_exporter-*.linux-amd64.tar.gz
sudo cp node_exporter-*.linux-amd64/node_exporter /usr/local/bin/
Создаётся unit-файл systemd, затем в конфигурации Prometheus добавляется job:
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
Безопасность: SELinux и аудит
Вопрос
Что такое SELinux?
Ответ
SELinux (Security-Enhanced Linux) — механизм принудительного контроля доступа (MAC), встроенный в ядро Linux. Он ограничивает действия процессов и пользователей на основе политик, даже если они обладают правами root.
Вопрос
Как проверить статус SELinux?
Ответ
Команда:
sestatus
Вывод показывает режим: enforcing (строгий), permissive (только логирование) или disabled.
Вопрос
Как временно перевести SELinux в permissive-режим?
Ответ
Команда:
sudo setenforce 0
Для возврата в enforcing:
sudo setenforce 1
Вопрос
Как навсегда отключить SELinux?
Ответ
В файле /etc/selinux/config установить:
SELINUX=disabled
Требуется перезагрузка.
Вопрос
Что такое AppArmor?
Ответ
AppArmor — альтернатива SELinux, реализующая профильный контроль доступа. Каждая программа имеет профиль, определяющий, к каким файлам и ресурсам она может обращаться.
Вопрос
Как проверить статус AppArmor?
Ответ
Команда:
sudo apparmor_status
Вопрос
Что такое auditd?
Ответ
auditd — демон аудита в Linux, записывающий события безопасности: входы пользователей, изменения файлов, системные вызовы. Используется для анализа инцидентов и соответствия требованиям.
Вопрос
Как отслеживать доступ к конкретному файлу через auditd?
Ответ
Команда:
sudo auditctl -w /etc/passwd -p rwxa -k passwd_access
Просмотр событий:
sudo ausearch -k passwd_access
Сетевая диагностика и настройка (продвинутая)
Вопрос
Что такое netstat и почему его заменили?
Ответ
netstat — устаревшая утилита для отображения сетевых соединений, таблиц маршрутизации и статистики интерфейсов. Её заменили более быстрые и современные инструменты из пакета iproute2, такие как ss и ip.
Вопрос
Как посмотреть таблицу маршрутизации?
Ответ
Команда:
ip route show
Или классический вариант:
route -n
Вопрос
Как добавить статический маршрут?
Ответ
Команда:
sudo ip route add 192.168.5.0/24 via 192.168.1.1 dev eth0
Для постоянного добавления маршрут прописывается в конфигурационные файлы сети.
Вопрос
Что такое tcpdump?
Ответ
tcpdump — утилита для захвата и анализа сетевого трафика в реальном времени. Позволяет фильтровать пакеты по портам, IP, протоколам.
Пример:
sudo tcpdump -i eth0 port 80 -nn
Вопрос
Как проверить MTU интерфейса?
Ответ
Команда:
ip link show eth0
Или:
cat /sys/class/net/eth0/mtu
Вопрос
Что такое bonding (объединение интерфейсов)?
Ответ
Bonding — объединение нескольких сетевых интерфейсов в один логический для повышения пропускной способности или отказоустойчивости. Поддерживает режимы: active-backup, balance-rr, 802.3ad и другие.
Управление ядром и загрузкой
Вопрос
Как узнать версию ядра Linux?
Ответ
Команда:
uname -r
Вопрос
Как обновить ядро в Ubuntu?
Ответ
Устанавливается пакет linux-image-generic или конкретная версия:
sudo apt install linux-image-$(uname -r|sed 's/-generic//')-generic
Или просто:
sudo apt install --install-recommends linux-generic-hwe-22.04
Вопрос
Что такое GRUB?
Ответ
GRUB (Grand Unified Bootloader) — загрузчик, используемый большинством дистрибутивов Linux. Он загружает ядро и initramfs, позволяет выбирать ОС при старте и передавать параметры ядру.
Вопрос
Где находится конфигурация GRUB?
Ответ
Основной файл: /etc/default/grub.
Сгенерированный конфиг: /boot/grub/grub.cfg (не редактируется вручную).
Вопрос
Как применить изменения в конфигурации GRUB?
Ответ
После редактирования /etc/default/grub выполняется команда:
sudo update-grub
(В RHEL/CentOS используется grub2-mkconfig -o /boot/grub2/grub.cfg.)
Вопрос
Как добавить параметр ядру при загрузке?
Ответ
В файле /etc/default/grub изменяется строка GRUB_CMDLINE_LINUX, например:
GRUB_CMDLINE_LINUX="quiet splash intel_iommu=on"
Затем выполняется update-grub.
Вопрос
Что такое initramfs?
Ответ
Initramfs — временная корневая файловая система, загружаемая ядром до монтирования основной. Содержит драйверы и скрипты, необходимые для доступа к корневому разделу (например, LVM, RAID, шифрование).
Вопрос
Как пересобрать initramfs?
Ответ
В Ubuntu/Debian:
sudo update-initramfs -u
В RHEL/CentOS:
sudo dracut --force
Управление обновлениями и безопасностью
Вопрос
Как проверить наличие обновлений безопасности в Ubuntu?
Ответ
Команда:
sudo unattended-upgrade --dry-run -d
Или просмотреть список пакетов с обновлениями:
apt list --upgradable
Вопрос
Что такое livepatch в Ubuntu?
Ответ
Livepatch — технология Canonical, позволяющая применять критические исправления ядра без перезагрузки системы. Обеспечивает непрерывную доступность серверов.
Вопрос
Как отложить обновление ядра в CentOS Stream?
Ответ
Можно исключить пакет из обновления через DNF:
sudo dnf install 'dnf-plugin-versionlock'
sudo dnf versionlock kernel
Вопрос
Как проверить, требует ли система перезагрузки после обновления?
Ответ
В Ubuntu/Debian проверяется наличие файла:
test -f /var/run/reboot-required && echo "Reboot required"
Высокая доступность и отказоустойчивость
Вопрос
Что такое Keepalived?
Ответ
Keepalived — демон для реализации отказоустойчивости с помощью протокола VRRP (Virtual Router Redundancy Protocol). Обеспечивает плавный переход виртуального IP-адреса на резервный сервер при отказе основного.
Вопрос
Как работает виртуальный IP в отказоустойчивом кластере?
Ответ
Виртуальный IP — это общий IP-адрес, назначенный группе серверов. Активный сервер отвечает на запросы с этого адреса. При его недоступности резервный сервер принимает виртуальный IP и продолжает обслуживание.
Вопрос
Что такое fencing в кластерах?
Ответ
Fencing — механизм изоляции неисправного узла кластера, предотвращающий одновременный доступ нескольких узлов к общим ресурсам (например, диску). Может быть реализован через отключение питания (STONITH) или отключение сети.
Централизованный сбор и анализ логов
Вопрос
Как настроить отправку логов на удалённый сервер через rsyslog?
Ответ
В файле /etc/rsyslog.conf или в отдельном файле в /etc/rsyslog.d/ добавляется строка:
*.* @remote-server:514
Символ @ означает UDP, @@ — TCP.
После этого перезапускается служба:
sudo systemctl restart rsyslog
Вопрос
Что такое Fluentd?
Ответ
Fluentd — агент для унифицированного сбора, фильтрации и пересылки логов. Поддерживает множество источников и назначений, включая Elasticsearch, Kafka, S3.
Вопрос
Какие компоненты входят в стек ELK?
Ответ
ELK включает:
- Elasticsearch — поисковый движок и хранилище данных
- Logstash — инструмент для приёма, парсинга и преобразования логов
- Kibana — веб-интерфейс для визуализации и анализа
Альтернатива Logstash — Beats (например, Filebeat).
Шифрование и безопасность данных
Вопрос
Что такое LUKS?
Ответ
LUKS (Linux Unified Key Setup) — стандарт шифрования дисков в Linux. Позволяет шифровать целые разделы или диски с использованием AES и других алгоритмов. Ключи защищены паролем или ключевым файлом.
Вопрос
Как создать зашифрованный раздел с помощью LUKS?
Ответ
Шаги:
sudo cryptsetup luksFormat /dev/sdb1
sudo cryptsetup open /dev/sdb1 secure_volume
sudo mkfs.ext4 /dev/mapper/secure_volume
sudo mount /dev/mapper/secure_volume /mnt/secure
Вопрос
Как автоматически монтировать LUKS-раздел при загрузке?
Ответ
Добавить запись в /etc/crypttab:
secure_volume /dev/sdb1 none luks
И в /etc/fstab:
/dev/mapper/secure_volume /mnt/secure ext4 defaults 0 2
Если используется ключевой файл, он указывается вместо none.
Автоматизация и скрипты
Вопрос
Как написать простой Bash-скрипт для проверки доступности сервиса?
Ответ
Пример скрипта check_service.sh:
#!/bin/bash
if systemctl is-active --quiet nginx; then
echo "nginx is running"
else
echo "nginx is down" >&2
exit 1
fi
Скрипт должен быть исполняемым: chmod +x check_service.sh.
Вопрос
Как обрабатывать ошибки в Bash-скриптах?
Ответ
Используется конструкция set -e, чтобы скрипт завершался при первой ошибке. Для точечной обработки — проверка кода возврата:
command || { echo "Failed"; exit 1; }
Вопрос
Как передать аргументы скрипту?
Ответ
Аргументы доступны как $1, $2, ..., $# — количество аргументов, $@ — все аргументы как список.
Пример:
echo "First arg: $1"
Профилактика и восстановление
Вопрос
Что такое initramfs и когда он нужен для восстановления?
Ответ
Initramfs содержит драйверы и утилиты для монтирования корневой файловой системы. При повреждении корневого раздела, LVM или шифрования система может не загрузиться без корректного initramfs. Восстановление выполняется из rescue-режима с пересборкой initramfs.
Вопрос
Как загрузиться в однопользовательский режим?
Ответ
При старте в меню GRUB нажать e, найти строку с linux, добавить в конец init=/bin/bash или single, затем нажать Ctrl+X. Это даёт root-доступ без пароля (если не включена защита GRUB).
Вопрос
Как восстановить GRUB после повреждения?
Ответ
Загрузиться с LiveCD, примонтировать корневую файловую систему, выполнить chroot и переустановить GRUB:
mount /dev/sda2 /mnt
mount /dev/sda1 /mnt/boot # если отдельный /boot
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt
grub-install /dev/sda
update-grub
Время и локализация
Вопрос
Как изменить часовой пояс в Linux?
Ответ
Команда:
sudo timedatectl set-timezone Europe/Moscow
Или вручную:
sudo ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Вопрос
Как синхронизировать время без NTP-сервиса?
Ответ
Используется команда:
sudo ntpdate -s pool.ntp.org
(Требует установленного пакета ntpdate.)
Сертификаты и TLS
Вопрос
Как проверить срок действия SSL-сертификата сайта?
Ответ
Команда:
echo | openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -dates
Вывод покажет notBefore и notAfter.
Вопрос
Как создать самоподписанный сертификат?
Ответ
Команда:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout server.key -out server.crt
Вопрос
Где хранятся доверенные корневые сертификаты в Linux?
Ответ
В большинстве дистрибутивов — в каталоге /etc/ssl/certs/. Пакет ca-certificates управляет этим набором. Для добавления своего сертификата:
sudo cp my-ca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
Инфраструктура как код и DevOps-практики
Вопрос
Что такое Infrastructure as Code (IaC)?
Ответ
Infrastructure as Code — подход к управлению инфраструктурой с помощью машинно-читаемых файлов конфигурации, а не ручных операций. Это обеспечивает воспроизводимость, версионирование и автоматизацию.
Вопрос
Какие инструменты IaC используют системные администраторы?
Ответ
Наиболее распространены:
- Terraform — для управления облачными и локальными ресурсами
- Ansible — для конфигурирования ОС и развёртывания ПО
- Packer — для создания образов виртуальных машин
Вопрос
Что делает Ansible?
Ответ
Ansible автоматизирует настройку серверов через playbooks — YAML-файлы, описывающие желаемое состояние системы. Работает по SSH, не требует агентов на целевых хостах.
Вопрос
Как проверить синтаксис Ansible playbook?
Ответ
Команда:
ansible-playbook --syntax-check site.yml
Вопрос
Что такое идемпотентность в контексте автоматизации?
Ответ
Идемпотентность — свойство операции, при котором многократное выполнение приводит к тому же результату, что и однократное. Ansible и другие инструменты стремятся быть идемпотентными, чтобы повторный запуск не нарушал систему.
Вопрос
Как управлять секретами в автоматизации?
Ответ
Используются специализированные инструменты:
- Ansible Vault — шифрование чувствительных данных в плейбуках
- HashiCorp Vault — централизованное хранилище секретов с API
- Environment variables — для CI/CD-систем
Вопрос
Что такое golden image?
Ответ
Golden image — эталонный образ виртуальной машины или контейнера, полностью настроенный и протестированный. Используется для быстрого и единообразного развёртывания инфраструктуры.
Вопрос
Как обеспечить соответствие политикам безопасности в инфраструктуре?
Ответ
Применяются инструменты аудита и compliance:
- OpenSCAP — проверка систем на соответствие стандартам (например, CIS)
- InSpec — фреймворк для написания тестов соответствия
- Ansible + модули безопасности — автоматическое приведение системы в соответствие
Вопрос
Как отслеживать изменения в конфигурации серверов?
Ответ
Используется контроль версий (например, Git) для хранения конфигурационных файлов и автоматизация через IaC. Любое изменение проходит через pull request и проверку. Это позволяет быстро выявлять расхождения и откатывать ошибки.
Вопрос
Что такое immutable infrastructure?
Ответ
Immutable infrastructure — подход, при котором серверы после развёртывания никогда не изменяются. Вместо обновления существующего сервера создаётся новый с новой конфигурацией, а старый удаляется. Это снижает риск дрейфа конфигураций и упрощает откат.