Linux-администрирование: руководство от новичка до профессионала

Пройдите тест, узнайте какой профессии подходите
Сколько вам лет
0%
До 18
От 18 до 24
От 25 до 34
От 35 до 44
От 45 до 49
От 50 до 54
Больше 55

Для кого эта статья:

  • Новички в администрировании Linux
  • Студенты и начинающие IT-специалисты
  • Владельцы и администраторы серверов на базе Linux

    Представьте: вы только что получили свой первый сервер под управлением Linux. Экран терминала мигает курсором, а перед вами – чистый лист возможностей и... океан незнакомых команд. Знакомо? 🤔 Я помню свой первый день как Linux-администратор – чувство растерянности и одновременно предвкушения новых открытий. В этом пошаговом руководстве мы пройдем путь от полного новичка до уверенного начинающего администратора Linux, разбирая каждый критический навык без лишней теоретизации. Готовы взять под контроль терминал и заставить пингвина работать на вас?

Пока вы изучаете Linux-администрирование, задумайтесь о расширении своих навыков в программировании. Обучение Python-разработке от Skypro идеально дополнит ваши знания в Linux! Представьте, как вы автоматизируете рутинные задачи администрирования с помощью собственных скриптов или разрабатываете веб-приложения для мониторинга ваших систем. Python и Linux – это мощный тандем для современного IT-специалиста. Освойте оба навыка и станьте незаменимым профессионалом! 💼

Основы Linux: что нужно знать начинающему администратору

Прежде чем погружаться в мир администрирования Linux, давайте заложим прочный фундамент знаний. Linux – это не просто операционная система, а целая философия открытого кода и свободы выбора. И первое, с чем вам придётся смириться – терминал станет вашим лучшим другом. 💻

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

Дистрибутив Особенности Идеален для
Ubuntu Дружелюбен к новичкам, обширные репозитории Первого знакомства с Linux
CentOS/Rocky Linux Стабильность, длительная поддержка Корпоративных серверов
Debian Высокая надежность, минимализм Серверов с повышенными требованиями к безопасности
Arch Linux Актуальные версии ПО, гибкая настройка Продвинутых пользователей, желающих полный контроль

Структура файловой системы Linux принципиально отличается от Windows, и понимание этого – ваш первый шаг к успеху:

  • /bin и /sbin – здесь живут базовые системные команды
  • /etc – ваша сокровищница конфигурационных файлов
  • /var – логи и другие меняющиеся данные
  • /home – личные папки пользователей
  • /opt – место для стороннего программного обеспечения

Базовые команды терминала – это алфавит, без которого невозможно составить даже простейшее предложение в мире Linux:

  • ls – показывает содержимое директории (добавьте флаг -la для подробного просмотра)
  • cd – перемещение между директориями (cd .. – подняться на уровень выше)
  • mkdir и rmdir – создание и удаление директорий
  • touch – создание пустых файлов
  • cat, less, more – просмотр содержимого файлов
  • cp и mv – копирование и перемещение
  • find – поиск файлов в системе
  • grep – поиск текста внутри файлов

Помните: в Linux регистр имеет значение! Файл "Config" и "config" – это два разных файла.

Александр Петров, системный администратор Linux

Когда я только начинал работать с Linux, меня постоянно выводила из себя необходимость использовать терминал для всего. "Почему нельзя просто нажать кнопку, как в Windows?" — думал я. Однажды мне поручили настроить 50 одинаковых серверов для нового проекта. В Windows я бы потратил неделю, щелкая мышкой по интерфейсам. В Linux я написал скрипт из 15 строк и запустил его на всех машинах одновременно через SSH. Работа заняла 30 минут. В тот день я понял силу командной строки и почему администраторы Linux так её ценят. Не бойтесь терминала — именно в нем скрыта настоящая мощь Linux.

Управление пакетами – еще одно фундаментальное отличие Linux от других ОС. В зависимости от дистрибутива, вы будете использовать разные инструменты:

  • apt (Ubuntu, Debian): sudo apt update && sudo apt install nginx
  • dnf/yum (CentOS, Fedora): sudo dnf install nginx
  • pacman (Arch Linux): sudo pacman -S nginx

Освоив эти базовые концепции, вы уже готовы перейти от теории к практике и сделать свои первые шаги в настройке системы.

Пошаговый план для смены профессии

Первые шаги в администрировании Linux систем

Теперь, когда основы изучены, давайте займемся реальным администрированием. Первая задача любого системного администратора после установки – базовая настройка системы. 🛠️

Начните с обновления системы – это должно стать вашим рефлексом:

  • Для Ubuntu/Debian: sudo apt update && sudo apt upgrade
  • Для CentOS/RHEL: sudo dnf update

Следующий шаг – настройка сети. Современные дистрибутивы предлагают разные инструменты:

Инструмент Дистрибутивы Назначение Пример команды
netplan Ubuntu 18.04+ Декларативное управление сетью через YAML-файлы sudo netplan apply
NetworkManager Большинство десктоп-дистрибутивов Удобное управление сетью с GUI и CLI nmcli con show
systemd-networkd Системы на базе systemd Низкоуровневое управление сетью networkctl
ip (iproute2) Все современные дистрибутивы Базовая настройка сети через CLI ip a

Для простой настройки статического IP-адреса через командную строку:

  1. Определите имя интерфейса: ip a
  2. Отредактируйте конфигурационный файл (зависит от дистрибутива). – Для Ubuntu/Debian: sudo nano /etc/netplan/01-netcfg.yaml – Для CentOS: sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0
  3. Перезапустите сетевую службу или примените изменения.

Важная часть настройки – правильная конфигурация времени. Для синхронизации с NTP-серверами используйте:

  • sudo timedatectl set-ntp true (для систем с systemd)
  • sudo apt install chrony && sudo systemctl enable --now chrony (для установки более гибкого NTP-клиента)

Следующий шаг – настройка хостнейма и DNS:

  • sudo hostnamectl set-hostname server1.example.com (установка имени хоста)
  • sudo nano /etc/hosts (добавление записей в локальный файл хостов)
  • sudo nano /etc/resolv.conf (настройка DNS-серверов на устаревших системах)
  • Для современных систем: sudo nano /etc/systemd/resolved.conf

Обеспечьте безопасность системы сразу после установки:

  • Настройте брандмауэр: – sudo ufw enable (Ubuntu) – sudo firewall-cmd --permanent --add-service=ssh && sudo firewall-cmd --reload (CentOS)
  • Установите и настройте fail2ban для защиты от брутфорса: – sudo apt install fail2ban && sudo systemctl enable --now fail2ban
  • Отключите ненужные сервисы: – sudo systemctl disable --now telnet avahi cups

Важнейший аспект – регулярное резервное копирование. Начните с простого:

  • Для конфигурационных файлов: sudo tar -czf /backup/etc-$(date +%F).tar.gz /etc
  • Для баз данных: mysqldump -u root -p --all-databases > /backup/mysql-$(date +%F).sql

Михаил Соколов, руководитель IT-инфраструктуры

Первый сервер, который я настраивал самостоятельно, превратился в настоящую катастрофу. Я был настолько уверен в своих силах, что пропустил настройку брандмауэра и оставил SSH-доступ с паролем по умолчанию. Через 12 часов сервер был взломан и использовался для майнинга криптовалюты. Я узнал об этом только когда сервер начал "лагать" и заказчик позвонил с вопросом, почему его новый веб-сайт загружается целую минуту. Пришлось всё переустанавливать с нуля и краснеть перед клиентом. С тех пор у меня есть чек-лист безопасности, который я выполняю буквально в первые 15 минут после установки системы. В администрировании Linux нет мелочей – цена ошибки может быть непомерно высокой.

После базовой настройки системы разверните и настройте SSH-сервер для удаленного администрирования:

  1. Установите, если еще не установлен: sudo apt install openssh-server
  2. Настройте для безопасной работы: sudo nano /etc/ssh/sshd_config – Измените порт с 22 на нестандартный: Port 2222 – Запретите root-логин: PermitRootLogin no – Разрешите только ключевую аутентификацию: PasswordAuthentication no
  3. Перезапустите сервис: sudo systemctl restart sshd

С этими базовыми настройками ваша система уже готова к дальнейшей работе и настройке более сложных сервисов.

Работа с пользователями и правами доступа в Linux

Управление пользователями и правами доступа – один из краеугольных камней безопасности Linux. В отличие от других операционных систем, Linux изначально строился как многопользовательская система с продуманной моделью разграничения доступа. 🔐

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

  • sudo useradd -m -s /bin/bash username – создание пользователя с домашним каталогом и оболочкой bash
  • sudo passwd username – установка пароля для пользователя
  • sudo usermod -aG sudo username – добавление пользователя в группу sudo для предоставления административных привилегий
  • sudo userdel -r username – удаление пользователя вместе с его домашним каталогом

Для просмотра информации о пользователях используйте:

  • cat /etc/passwd – просмотр списка всех пользователей
  • groups username – просмотр групп, в которые входит пользователь
  • id username – подробная информация о пользователе и его группах

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

  • r (read, 4) – право на чтение
  • w (write, 2) – право на запись
  • x (execute, 1) – право на выполнение

Эти права устанавливаются для трех категорий:

  • Владелец (user) – создатель файла
  • Группа (group) – группа пользователей с одинаковыми правами
  • Остальные (others) – все остальные пользователи

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

  • chmod 755 file.txt – установка прав rwx для владельца, r-x для группы и остальных
  • chmod u+x script.sh – добавление права на выполнение для владельца
  • chown user:group file.txt – изменение владельца и группы файла
  • chgrp group file.txt – изменение только группы файла

Для более гибкого управления доступом в современных системах используются ACL (Access Control Lists):

  • sudo apt install acl – установка утилит ACL
  • getfacl file.txt – просмотр расширенных прав доступа
  • setfacl -m u:username:rw file.txt – предоставление пользователю username прав на чтение и запись
  • setfacl -m g:developers:rx file.txt – предоставление группе developers прав на чтение и выполнение

При работе с правами важно понимать специальные разрешения:

  • SUID (4000) – при выполнении файл запускается с привилегиями владельца
  • SGID (2000) – при выполнении файл запускается с привилегиями группы
  • Sticky Bit (1000) – файлы в директории могут быть удалены только их владельцами

Пример установки специальных разрешений:

  • chmod 4755 myprogram – установка SUID
  • chmod 2755 mygroupprogram – установка SGID
  • chmod 1777 /shared – установка Sticky Bit для общей директории

Для организаций с большим количеством пользователей можно настроить интеграцию с централизованными системами аутентификации:

  • LDAP – легковесный протокол для доступа к службам каталогов
  • Active Directory – интеграция через winbind или sssd
  • SSSD (System Security Services Daemon) – современное решение для интеграции Linux с различными системами идентификации

Базовый пример интеграции с LDAP:

  1. Установить необходимые пакеты: sudo apt install libnss-ldap libpam-ldap nscd
  2. Настроить конфигурационные файлы: /etc/ldap.conf, /etc/nsswitch.conf, /etc/pam.d/common-auth
  3. Перезапустить службы: sudo systemctl restart nscd

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

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

Администрирование Linux невозможно без умения эффективно управлять процессами и сервисами. В этом разделе мы разберемся, как контролировать работающие программы, настраивать автозапуск сервисов и решать проблемы с зависшими процессами. ⚙️

Начнем с базовых команд для просмотра работающих процессов:

  • ps aux – показывает все процессы со статической информацией
  • top или htop – интерактивные мониторы процессов в реальном времени
  • pgrep firefox – поиск PID процесса по имени

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

  • kill PID – отправляет сигнал TERM (15) для корректного завершения
  • kill -9 PID – отправляет сигнал KILL (9) для принудительного завершения
  • killall firefox – завершает все процессы с указанным именем
  • nice -n 10 command – запуск программы с пониженным приоритетом
  • renice -n 10 -p PID – изменение приоритета уже запущенного процесса

В современных Linux-системах для управления сервисами используется systemd – мощная система инициализации. Основные команды:

  • systemctl status nginx – проверка состояния службы
  • systemctl start nginx – запуск службы
  • systemctl stop nginx – остановка службы
  • systemctl restart nginx – перезапуск службы
  • systemctl reload nginx – перезагрузка конфигурации без остановки
  • systemctl enable nginx – включение автозапуска при загрузке системы
  • systemctl disable nginx – отключение автозапуска

Для создания собственной службы systemd необходимо создать юнит-файл в директории /etc/systemd/system/:

  1. Создайте файл sudo nano /etc/systemd/system/myapp.service
  2. Добавьте минимальную конфигурацию:

     [Unit]
     Description=My Custom Application
     After=network.target
    
     [Service]
     Type=simple
     User=appuser
     WorkingDirectory=/opt/myapp
     ExecStart=/usr/bin/python3 /opt/myapp/app.py
     Restart=on-failure
    
     [Install]
     WantedBy=multi-user.target
     
    
  3. Включите и запустите службу: sudo systemctl daemon-reload && sudo systemctl enable --now myapp

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

  • free -h – информация об использовании оперативной памяти
  • df -h – использование дискового пространства
  • iostat – статистика по вводу-выводу
  • lsof – список открытых файлов (полезно для определения, какие процессы блокируют файлы)
  • lsof -i :80 – показывает процессы, использующие порт 80

Планирование задач в Linux осуществляется через cron и systemd-timers. Примеры использования cron:

  • crontab -e – редактирование персонального расписания задач
  • */5 * * * * /path/to/script.sh – запуск скрипта каждые 5 минут
  • 0 2 * * * /path/to/backup.sh – запуск скрипта резервного копирования ежедневно в 2:00

Для более сложных сценариев планирования в современных системах можно использовать systemd-timers:

  1. Создайте сервисный файл /etc/systemd/system/backup.service
  2. Создайте файл таймера /etc/systemd/system/backup.timer с настройками периодичности
  3. Активируйте таймер: sudo systemctl enable --now backup.timer

Настройка ограничений ресурсов для процессов и пользователей через cgroups:

  • Для ограничения CPU: systemctl set-property myapp.service CPUQuota=50%
  • Для ограничения памяти: systemctl set-property myapp.service MemoryLimit=1G

Управление журналами сервисов через journald:

  • journalctl -u nginx – просмотр журналов конкретной службы
  • journalctl -f – просмотр журналов в режиме реального времени (аналог tail -f)
  • journalctl --since "2023-10-01" --until "2023-10-02" – просмотр журналов за определённый период

Эффективное управление процессами и сервисами – это ключевой навык, который позволит вам поддерживать стабильность и производительность вашей Linux-системы.

Мониторинг и безопасность Linux систем для новичков

Мониторинг и безопасность – два столпа, на которых держится успешное администрирование Linux-систем. Без постоянного наблюдения и проактивной защиты даже идеально настроенная система может стать жертвой атаки или выйти из строя в самый неподходящий момент. 🛡️

Начнем с базового мониторинга, который можно настроить буквально за несколько минут:

  • Мониторинг ресурсов в реальном времени: установите более функциональные альтернативы стандартным утилитам – sudo apt install htop iotop iftophtop – улучшенная версия top с интерактивным интерфейсом – iotop – мониторинг дисковых операций ввода-вывода – iftop – мониторинг сетевого трафика по интерфейсам
  • Мониторинг дискового пространства: – df -h – общая информация по файловым системам – du -sh /var/log/* – размер директорий в /var/log – ncdu / – интерактивный анализатор использования диска (требует установки: sudo apt install ncdu)
  • Анализ журналов: – tail -f /var/log/syslog – просмотр системного журнала в реальном времени – grep "error" /var/log/apache2/error.log – поиск ошибок в журнале Apache – journalctl -p err – просмотр всех ошибок в journald

Для автоматизированного мониторинга начинающим администраторам рекомендую простые в настройке решения:

Инструмент Тип Плюсы Минусы Базовая установка
Netdata Система мониторинга в реальном времени Очень простая установка, визуально богатый веб-интерфейс, минимальная настройка Высокое потребление ресурсов при большом количестве метрик bash <(curl -Ss https://my-netdata.io/kickstart.sh)
Prometheus + Grafana Система сбора метрик + визуализация Масштабируемость, гибкость, поддержка алертинга Сложнее в настройке, требует больше компонентов Требует отдельных инструкций в зависимости от дистрибутива
Monit Система мониторинга и автоматических действий Легковесность, может автоматически перезапускать сервисы Ограниченная функциональность визуализации sudo apt install monit
Glances Кросс-платформенная система мониторинга Не требует настройки, можно запускать по требованию Ограниченный функционал по сравнению со специализированными решениями sudo apt install glances

Теперь перейдем к базовой безопасности Linux-систем – это минимальный набор мер, который следует реализовать на любой системе:

  1. Обновления безопасности: – Ubuntu/Debian: sudo apt install unattended-upgrades && sudo dpkg-reconfigure unattended-upgrades – CentOS/RHEL: sudo dnf install dnf-automatic && sudo systemctl enable --now dnf-automatic.timer
  2. Настройка брандмауэра: – Ubuntu: sudo ufw allow ssh && sudo ufw enable – CentOS/RHEL: sudo firewall-cmd --permanent --add-service=ssh && sudo firewall-cmd --reload
  3. Защита от брутфорса: – sudo apt install fail2bansudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localsudo systemctl enable --now fail2ban
  4. Отключение неиспользуемых сервисов: – sudo systemctl list-unit-files --type=service | grep enabled – список включенных сервисов – sudo systemctl disable --now servicename – отключение ненужного сервиса
  5. Настройка SSH: – Редактирование /etc/ssh/sshd_config: – Запретить root-логин: PermitRootLogin no – Использовать только ключи: PasswordAuthentication no – Изменить стандартный порт: Port 2222 – Перезапуск: sudo systemctl restart sshd

Для аудита безопасности используйте:

  • sudo apt install lynis && sudo lynis audit system – комплексный аудит безопасности
  • sudo apt install rkhunter && sudo rkhunter --check – поиск руткитов и бэкдоров
  • sudo apt install chkrootkit && sudo chkrootkit – альтернативный сканер руткитов

Базовый мониторинг безопасности можно организовать с помощью простых скриптов и cron-заданий:

  1. Создайте скрипт /usr/local/bin/security_check.sh:

    Bash
    Скопировать код
     #!/bin/bash
     # Проверка неудачных попыток входа
     echo "Failed login attempts:"
     grep "Failed password" /var/log/auth.log | tail -10
    
     # Проверка последних успешных входов
     echo -e "\nLast successful logins:"
     last | head -10
    
     # Проверка открытых портов
     echo -e "\nOpen ports:"
     ss -tulpn
    
     # Проверка недавно установленных пакетов
     echo -e "\nRecently installed packages:"
     if [ -f /var/log/apt/history.log ]; then
         grep "Commandline: apt" /var/log/apt/history.log | tail -5
     fi
     
    
  2. Сделайте скрипт исполняемым: sudo chmod +x /usr/local/bin/security_check.sh
  3. Добавьте его в crontab для ежедневного запуска и отправки отчета на почту:

    Bash
    Скопировать код
     0 8 * * * /usr/local/bin/security_check.sh | mail -s "Daily Security Report" your@email.com
     
    

Запомните главный принцип безопасности Linux-систем: безопасность – это процесс, а не конечное состояние. Регулярное обновление, мониторинг и аудит должны стать вашими постоянными союзниками.

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

Читайте также

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей
Какая команда используется для копирования файлов и директорий в Linux?
1 / 5

Загрузка...