Администрирование Linux-серверов для новичков: базовые навыки
сен, 18 2026
Вы когда-нибудь смотрели на черный экран с мигающим курсором и чувствовали легкий ужас? Это нормально. Linux - это не просто операционная система, а фундамент современного интернета, который управляет большинством серверов в мире. Если вы хотите стать системным администратором или DevOps-инженером, вам придется перестать бояться терминала и начать его любить. В этой статье мы разберем именно те навыки, которые нужны вам прямо сейчас, чтобы не сломать прод и спокойно спать по ночам.
Зачем вам нужен терминал, если есть графический интерфейс?
Многие новички спрашивают: «Почему я не могу просто скачать программу через магазин приложений, как в Windows?» Ответ прост: серверы обычно работают без монитора. У вас нет рабочего стола, нет мышки и нет кнопки «Обновить». Есть только SSH-соединение и набор текстовых команд. Это может показаться сложным, но на самом деле это быстрее и надежнее.
Когда вы используете графический интерфейс, вы тратите время на поиск нужного окна. В терминале вы вводите команду, и она выполняется мгновенно. Кроме того, скрипты позволяют автоматизировать рутину. Представьте, что вам нужно обновить систему на 100 серверах. Кликать мышкой 100 раз утомительно. Написать одну строчку кода - дело пяти минут.
Навигация по файловой системе: где все лежит?
Первое, что сбивает с толку после Windows - структура папок. Здесь нет диска C:\ или D:\. Все начинается с корня, обозначаемого слэшем /. Понимание этой иерархии критически важно для администрирования Linux.
Давайте разберем основные директории, которые вы будете использовать каждый день:
/home- здесь живут профили пользователей. Ваша домашняя папка будет выглядеть как/home/user./etc- сердце конфигурации системы. Здесь лежат файлы настроек большинства программ. Не трогайте их без бэкапа!/var/log- сюда пишутся логи. Когда что-то ломается, вы идете сюда искать причины./binи/usr/bin- здесь хранятся исполняемые файлы команд (например, ls, cd, grep)./tmp- временные файлы. Система может очищать эту папку при перезагрузке.
Команды навигации примитивны, но мощны:
ls -laпокажет содержимое текущей папки, включая скрытые файлы (те, что начинаются с точки).cd /etc/nginxперенесет вас в папку конфигурации веб-сервера Nginx.pwdподскажет, где вы находитесь, если вы заблудились в глубинах файловой системы.
Управление правами доступа: кто тут главный?
В Linux всё основано на безопасности. Каждый файл принадлежит определенному пользователю и группе. Если вы попытаетесь изменить системный файл под обычным юзером, система скажет «Отказано в доступе». Вам понадобятся права суперпользователя.
Команда sudo позволяет выполнять команды от имени root (главного администратора). Например, чтобы установить пакет, вы пишете sudo apt install nginx. Но будьте осторожны: sudo дает полную власть над системой. Одна опечатка может привести к катастрофе.
| Команда | Что делает | Пример использования |
|---|---|---|
chmod |
Изменяет права на чтение, запись и выполнение | chmod +x script.sh (делает файл исполняемым) |
chown |
Меняет владельца файла или папки | chown user:group file.txt |
ls -l |
Показывает текущие права доступа | ls -l /var/www/html |
Права записываются в цифровом формате (например, 755) или буквенном (rwx). Для начала запомните простое правило: для папок часто используют 755 (владелец может все, остальные могут читать и переходить), для файлов - 644 (владелец читает/пишет, остальные только читают).
Работа с пакетами: как ставить софт?
В отличие от Windows, где вы скачиваете .exe файлы, в Linux используются пакетные менеджеры. Они следят за зависимостями. Если программе нужна библиотека X, менеджер сам ее докачает.
Если вы работаете с Ubuntu или Debian, ваш лучший друг - apt. Если CentOS или RHEL - yum или dnf. Вот типичный цикл работы:
- Обновите список доступных пакетов:
sudo apt update. - Установите нужный софт:
sudo apt install git. - Проверьте версию:
git --version. - Удалите ненужное:
sudo apt remove git.
Никогда не запускайте обновления без предварительного просмотра изменений. Иногда новое обновление библиотеки может сломать старую версию вашего приложения.
Мониторинг процессов: что жрет ресурсы?
Сервер упал из-за нехватки памяти? Или CPU загружен на 100%? Чтобы понять причину, нужно смотреть на активные процессы. Инструмент номер один для этого - top или его улучшенная версия htop.
htop показывает цветную таблицу всех запущенных программ. Вы видите, сколько памяти потребляет база данных, сколько ядер CPU занято веб-сервером. Если процесс завис, вы можете его убить.
Как найти и остановить проблемный процесс:
- Найдите PID (идентификатор процесса) в списке htop.
- Используйте команду
kill -9 [PID], чтобы принудительно завершить процесс. - Если вы не знаете PID, найдите его через
ps aux | grep имя_процесса.
Не убивайте процессы, названия которых вам неизвестны. Системные службы вроде systemd или sshd критически важны. Если убьете sshd, потеряете соединение с сервером и не сможете подключиться снова без физической консоли.
Безопасность: SSH и firewall
Интернет полон ботов, которые сканируют порты и пытаются подобрать пароли. По умолчанию SSH (протокол удаленного доступа) открыт на порту 22. Оставьте его так, и через неделю увидите тысячи неудачных попыток входа в логах.
Базовая гигиена безопасности для новичка:
- Замените пароль на ключи SSH. Ключи сложнее подобрать, чем пароль из 8 символов. Сгенерируйте пару ключей на своем компьютере (
ssh-keygen) и скопируйте публичный ключ на сервер (ssh-copy-id). - Отключите вход по паролю. Отредактируйте файл
/etc/ssh/sshd_config, установивPasswordAuthentication no. После этого вход возможен только по ключу. - Настройте Firewall. В Ubuntu это UFW. Разрешите только нужные порты: 22 (SSH), 80 (HTTP), 443 (HTTPS). Всё остальное должно быть закрыто. Команда:
sudo ufw allow 22/tcp && sudo ufw enable.
Автоматизация рутины: Cron
Системный администратор ценит свое время. Если вам нужно делать одно и то же действие регулярно (делать бэкапы, чистить логи, отправлять отчеты), используйте планировщик задач cron.
Cron работает по расписанию. Формат записи выглядит страшно (* * * * * command), но он логичен: минуты, часы, дни месяца, месяцы, дни недели. Пример задачи, которая запускается каждый день в полночь:
0 0 * * * /usr/bin/python3 /home/user/backup_script.py >> /var/log/backup.log 2>&1
Эта команда запускает Python-скрипт бэкапа и сохраняет вывод (как успешный, так и ошибки) в лог-файл. Так вы всегда будете знать, прошла ли задача успешно.
Частые ошибки новичков
Даже опытные админы делают ошибки. Но новички совершают их систематически. Вот три самых популярных ловушки:
- Редактирование конфигов без бэкапа. Перед тем как править
nginx.conf, сделайте копию:cp nginx.conf nginx.conf.bak. Если ошибетесь, быстро вернете все назад. - Использование sudo для всего подряд. Не работайте под root постоянно. Это опасно и мешает видеть реальные права доступа.
- Игнорирование логов. Логи - это ваши глаза. Если сервис не стартует, первым делом смотрите
/var/log/syslogили журнал конкретного сервиса черезjournalctl -u service_name.
Куда двигаться дальше?
Мы рассмотрели базу. Но мир Linux огромен. Следующие шаги зависят от ваших целей. Если хотите работать с вебом - изучите Nginx и Apache. Если с данными - PostgreSQL и MySQL. Если с инфраструктурой - Docker и Kubernetes.
Главный совет: практикуйтесь. Поднимите виртуальную машину, сломайте ее, почините. Только так формируются настоящие навыки. Не бойтесь ошибок, они лучшие учителя.
Какой дистрибутив Linux выбрать для обучения?
Для новичков лучше всего подходит Ubuntu Server. У него огромное сообщество, много документации и понятный менеджер пакетов apt. Если хотите больше контроля и ближе к корпоративным стандартам, попробуйте Rocky Linux или AlmaLinux (наследники CentOS).
Нужно ли учить весь bash скриптинг сразу?
Нет, не нужно. Начните с простых однострочников: цепочки команд через пайп (|), перенаправление вывода (>). Глубокий bash scripting можно изучить позже, когда столкнетесь с необходимостью писать сложные автоматизации.
Как проверить, какой порт занят на сервере?
Используйте команду ss -tulpn или netstat -tulpn. Она покажет все слушающие сокеты и привязанные к ним процессы. Это незаменимый инструмент при диагностике конфликтов портов.
Что делать, если забыл пароль root?
Если у вас есть доступ к консоли хостинга или гипервизору, перезагрузите сервер и войдите в режим восстановления (recovery mode). Там можно смонтировать файловую систему на чтение-запись и сбросить пароль командой passwd root.
Чем отличается SSH от Telnet?
SSH шифрует весь трафик между клиентом и сервером, включая пароли и данные команд. Telnet передает все в открытом виде. Поэтому Telnet практически не используется в современной сетевой инфраструктуре из-за низкой безопасности.