Администрирование

Серверы, сети, мониторинг и бэкапы.

  • «Как настроить резервное копирование с rsync»

  • «Автоматизация задач через cron и systemd»

Ranger от простого до сложного

- Опубликовано в Администрирование

Введение

Ranger – это утилита командной строки для работы с файловой системой, напоминающая текстовый файловый менеджер Midnight Commander или графический проводник Windows, но полностью основанная на терминале. Она поддерживает множество функций: просмотр, копирование, перемещение, поиск, интеграцию с редакторами и даже работу через SSH‑ключи.
В этой статье мы последовательно разберём основные возможности Ranger от базового использования до продвинутых сценариев.

Основная часть

1. Установка и первый запуск

# Ubuntu/Debian
sudo apt install ranger

# Arch Linux
sudo pacman -S ranger

# macOS (Homebrew)
brew install ranger

После установки запустите:

ranger

Внутри вы увидите два вертикальных окна, разделённые полем для команды. Навигация осуществляется клавишами h, j, k, l и стрелками.

Совет: Чтобы выйти из Ranger нажмите q.


2. Базовые операции

Команда Описание
Enter Открыть файл/папку
u Подняться на уровень выше
yy Копировать (копировать в буфер)
p Вставить из буфера
dd Удалить
gg Перейти к началу списка
G Перейти к концу списка
# Пример копирования и вставки:
yy   # Копируем текущий файл
cd /tmp  # Переходим в целевую директорию
p       # Вставляем

3. Поиск файлов (фильтрация)

Нажмите : для вызова командной строки, затем введите:

:filter *.py

Все файлы, не соответствующие шаблону, будут скрыты.

Указание: Можно использовать регулярные выражения с флагом -r.


4. Работа с удалёнными системами (SSH)

Ranger автоматически использует SSH‑ключи из вашего агентского менеджера:

ssh-add ~/.ssh/id_rsa

Затем откройте удаленную папку:

:open ssh://user@host:/var/www/

5. Конфигурация и расширения

Файл конфигурации находится по пути ~/.config/ranger/rc.conf. Ниже пример настройки горячих клавиш:

# Перемещение на 10 строк вниз
map j10 move_down

# Включить отображение скрытых файлов
set show_hidden true

Для установки плагинов создайте каталог plugins и скопируйте туда скрипты, например:

git clone https://github.com/ranger/ranger.git ~/.config/ranger/plugins/fzf

После этого включите их в конфиге:

# Включить fzf поиск
map <c-p> find_file_in_fzf

6. Интеграция с редакторами

Ranger позволяет открывать файлы сразу в выбранном редакторе, например vim или nano. Добавьте в rc.conf:

# Открыть файл в vim
map i edit

# Открыть файл в nano
map n edit-nano

7. Скрипты и автоматизация

Ranger поддерживает расширения на Python, которые можно писать самостоятельно. Пример простого скрипта для создания резервной копии:

#!/usr/bin/env python3
import os
import shutil
from ranger.api.commands import Command

class backup(Command):
    """
    :backup
    Создаёт архив текущей директории.
    """

    def execute(self):
        src = self.fm.thisdir.path
        dst = f"{src}.tar.gz"
        shutil.make_archive(src, 'gztar', root_dir=src)
        self.fm.notify(f"Архив создан: {dst}")

Сохраните как ~/.config/ranger/plugins/backup.py и используйте команду :backup.


Заключение

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

Программный RAID mdadm и с чем его едят

- Опубликовано в Администрирование

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

Что такое RAID?

RAID (Redundant Array of Independent Disks) – это технология объединения нескольких физических дисков в один логический массив для повышения производительности, надежности или обеих этих характеристик. Существует множество различных уровней RAID, каждый из которых имеет свои преимущества и недостатки. Рассмотрим наиболее распространенные:

  • RAID 0 (Striping): Данные распределяются по всем дискам массива. Это обеспечивает высокую скорость чтения/записи, но не предоставляет никакой защиты от потери данных. При отказе одного из дисков теряется весь массив.
  • RAID 1 (Mirroring): Данные зеркалируются на все диски в массиве. Это обеспечивает высокую надежность, так как при отказе одного из дисков данные остаются доступными на других. Однако, полезный объем массива равен объему наименьшего диска и не увеличивается с добавлением новых дисков.
  • RAID 5 (Striping with Parity): Данные распределяются по всем дискам массива, а также вычисляется контрольная сумма (паритет) для каждого блока данных. Паритет распределяется по всем дискам, что позволяет восстановить данные в случае отказа одного из дисков. Требует минимум 3 диска.
  • RAID 6 (Striping with Double Parity): Аналогичен RAID 5, но использует двойной паритет, что позволяет пережить отказ двух дисков. Требует минимум 4 диска.
  • RAID 10 (Mirroring and Striping): Комбинация RAID 1 и RAID 0. Данные одновременно зеркалируются и распределяются по дискам, обеспечивая высокую производительность и надежность. Требует четное количество дисков (минимум 4).

Установка mdadm

В большинстве дистрибутивов Linux mdadm уже установлен. Если это не так, установите его с помощью менеджера пакетов вашей системы:

sudo apt install mdadm  # Debian/Ubuntu
sudo yum install mdadm  # CentOS/RHEL
sudo pacman -S mdadm # Arch Linux

Создание RAID массива

Перед созданием массива убедитесь, что все диски имеют одинаковый размер. Это особенно важно для RAID 5 и выше. Для примера рассмотрим создание RAID 5 массива из трех дисков /dev/sda1, /dev/sdb1 и /dev/sdc1.

sudo mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sda1 /dev/sdb1 /dev/sdc1
  • /dev/md0: Имя создаваемого RAID массива.
  • --level=5: Уровень RAID (в данном случае RAID 5).
  • --raid-devices=3: Количество дисков в массиве.
  • /dev/sda1 /dev/sdb1 /dev/sdc1: Список дисков, которые будут включены в массив.

После выполнения команды mdadm начнет создание массива. Этот процесс может занять некоторое время, в зависимости от размера дисков и производительности системы. Во время создания массива не используйте эти диски для других целей!

Добавление диска в RAID массив

Если вам необходимо добавить диск в существующий массив (например, после замены вышедшего из строя), воспользуйтесь командой --add:

sudo mdadm --add /dev/md0 /dev/sdd1
  • /dev/md0: Имя RAID массива.
  • /dev/sdd1: Диск, который будет добавлен в массив. Убедитесь, что диск имеет тот же размер, что и остальные диски в массиве.

После добавления диска mdadm начнет процесс синхронизации массива. Этот процесс также может занять некоторое время.

Удаление диска из RAID массива

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

sudo mdadm --remove /dev/md0 /dev/sda1
  • /dev/md0: Имя RAID массива.
  • /dev/sda1: Диск, который будет удален из массива.

После удаления диска mdadm начнет процесс пересоздания массива с оставшимися устройствами. Этот процесс также может занять некоторое время.

Просмотр информации о RAID массиве

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

sudo mdadm --detail /dev/md0

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

Мониторинг RAID массива

Для отслеживания состояния массива можно использовать команду mdstat:

cat /proc/mdstat

Эта команда отображает текущий статус всех RAID массивов в системе, включая информацию о процессе синхронизации и наличии неисправных дисков. Также рекомендуется настроить систему мониторинга (например, Zabbix или Nagios) для автоматического оповещения об изменениях состояния массива.

Автоматическая сборка массива при загрузке системы

Для того чтобы массив автоматически собирался при загрузке системы, необходимо добавить его в файл конфигурации /etc/mdadm/mdadm.conf. Вы можете создать этот файл вручную или использовать команду mdadm --detail --config=filename /dev/md0, которая сгенерирует конфигурационный файл на основе текущего состояния массива.

После редактирования файла конфигурации обновите кэш mdadm:

sudo update-initramfs -u

Заключение

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

Что за зверь Ansible и с чем его едят

- Опубликовано в Администрирование

Введение

Ansible — это не просто инструмент для автоматизации, а настоящий «тренер» ваших серверов. Он позволяет писать описания инфраструктуры как код, запускать задачи параллельно и контролировать состояние систем без лишних усилий. Если вы только начали знакомиться с DevOps‑стеком, то Ansible покажется вам дружелюбным, но мощным союзником: его простота в синтаксисе и отсутствие необходимости на каждом узле устанавливать агенты делают его особенно привлекательным для небольших и средних команд.

Основная часть

1. Что такое Ansible?

Ansible — это инструмент автоматизации (Automation Engine), написанный на Python, который использует простой язык YAML для описания задач. Ключевые особенности:

Характеристика Описание
Агент‑лесс Нет необходимости в клиенте на удалённых хостах — используется SSH/WinRM.
Declarative Вы описываете желаемое состояние, а Ansible сам решает как его достичь.
Idempotent Повторный запуск той же playbook не меняет уже корректно настроенную систему.
- hosts: webservers
  become: yes
  tasks:
    - name: Установить Nginx
      apt:
        name: nginx
        state: present

2. Как работает Ansible?

  1. Inventory – список хостов (можно статический файл, динамический скрипт или API).
  2. Playbook – набор play‑ов, каждый из которых состоит из tasks.
  3. Module – небольшие программки, выполняющие конкретную операцию (apt, yum, copy и т.д.).
  4. Callback & Logging – вывод результатов в реальном времени.

Пример динамического inventory с использованием AWS EC2:

#!/usr/bin/env python
import boto3
import json

def main():
    ec2 = boto3.client('ec2')
    instances = ec2.describe_instances(
        Filters=[{'Name': 'tag:Role', 'Values': ['web']}]
    )
    inventory = {"_meta": {"hostvars": {}}}
    for r in instances['Reservations']:
        for i in r['Instances']:
            hostname = i['PrivateIpAddress']
            inventory.setdefault('webservers', []).append(hostname)
    print(json.dumps(inventory))

if __name__ == "__main__":
    main()

3. Почему Ansible популярен?

Причина Пример
Простота YAML‑файлы легко читать и писать даже новичкам.
Быстрый старт С одной командой ansible-galaxy init создаётся шаблон проекта.
Масштабируемость Параллельный запуск до 5 000 узлов без дополнительной конфигурации.
Большое сообщество Множество готовых ролей в Ansible Galaxy.

4. Практический пример: развертывание LAMP‑стека

- hosts: dbservers
  become: yes
  roles:
    - { role: mysql, tags: ['db'] }

- hosts: webservers
  become: yes
  roles:
    - { role: apache, tags: ['web'] }

В роли apache можно задать шаблон конфигурации:

# templates/httpd.conf.j2
<VirtualHost *:80>
    ServerName {{ inventory_hostname }}
    DocumentRoot /var/www/html/{{ inventory_hostname }}
</VirtualHost>

5. Интеграция с CI/CD

Ansible часто подключают к Jenkins, GitLab CI или GitHub Actions для автоматического деплоя после успешного билда:

# .gitlab-ci.yml
deploy:
  stage: deploy
  script:
    - ansible-playbook -i inventory/production playbooks/site.yml

Заключение

Ansible — это гибкая и мощная система автоматизации, которая позволяет управлять как небольшими стендами, так и крупными облачными инфраструктурами. Его простота в использовании, отсутствие агентов и широкая экосистема делают его отличным выбором для любой команды, стремящейся к «инфраструктуре как коду». Если вы ещё не попробовали Ansible, сейчас самое время открыть для себя этот “зверь” и увидеть, насколько легче может стать жизнь системного администратора.

Разбор полетов: распространенные системы мониторинга серверов

- Опубликовано в Администрирование

Введение

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

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


Основная часть

Что такое система мониторинга?

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

Категория Примеры
Метрики CPU, RAM, I/O, сетевой трафик
Логи syslog, application logs
Оповещения e‑mail, Slack, PagerDuty

1️⃣ Prometheus + Grafana

Prometheus — система сбора метрик с открытым исходным кодом. Grafana – визуализация и панель управления.

Плюсы

  • Быстрый старт: docker run -p 9090:9090 prom/prometheus
  • Расширяемость через экспортёры (Node Exporter, Blackbox Exporter)
  • Хранение временных рядов в собственной базе

Минусы

  • Не хранит логи (для этого нужен Loki или другой инструмент)
  • Оповещения требуют внешнего интеграционного слоя (Alertmanager)

Мини‑конфигурация Prometheus

# prometheus.yml
global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'node'
    static_configs:
      - targets: ['localhost:9100']

Grafana Dashboard

  • Включает готовые дашборды (например, “Node Exporter Full”)
  • Поддержка Alerting на уровне панели

2️⃣ Zabbix

Zabbix — полностью интегрированная система мониторинга с поддержкой метрик, логов и SNMP.

Плюсы

  • Полный стек: сбор данных, хранение, оповещения, API
  • Интеграция с SNMP‑устройствами
  • Удобный интерфейс для конфигурации

Минусы

  • Требует настройки серверной части (MySQL/PostgreSQL)
  • Небольшой накладной расход на ресурсы

Основные компоненты

Компонент Описание
Zabbix server Сбор и хранение данных
Zabbix agent Сбор метрик от узла
Front‑end (PHP) Веб‑интерфейс

Мини‑конфигурация агента

# /etc/zabbix/zabbix_agentd.conf
Server=192.168.1.100
Hostname=server-01
ListenPort=10050

3️⃣ Netdata

Netdata — «живой» мониторинг в реальном времени с простым установочным скриптом.

Плюсы

  • Быстрая установка: bash <(curl -Ss https://my-netdata.io/kickstart.sh)
  • Интерактивные графики, поддержка Docker/Kubernetes
  • Нет необходимости в отдельном сервере

Минусы

  • Меньше возможностей для долгосрочного хранения данных (можно подключить Prometheus)
  • Ограниченные возможности кастомизации алёртов

Пример конфигурации

# /etc/netdata/netdata.conf
[global]
    allow root = yes

4️⃣ Grafana Loki + Alertmanager + Promtail

Если вы хотите собрать логирование и метрики в одном стеку, рассмотрите комбинацию:

  • Loki — хранение логов (по аналогии с Prometheus)
  • Promtail — агент для сбора логов
  • Alertmanager — оповещения

Плюсы

  • Легкая интеграция с Grafana
  • Хранит только метаданные, экономя место
  • Полностью открытый исходный код

Мини‑конфигурация Promtail

server:
  http_listen_port: 9080
positions:
  filename: /tmp/positions.yaml
clients:
  - url: http://localhost:3100/api/prom/push
scrape_configs:
  - job_name: system
    static_configs:
      - targets:
          - localhost
    pipeline_stages:
      - docker: {}

5️⃣ Datadog (облачный вариант)

Datadog – SaaS‑решение с богатым набором интеграций.

Плюсы

  • Быстрый старт, облачные данные
  • Удобная панель, алёрты, APM, log management

Минусы

  • Стоимость (платный сервис)
  • Зависимость от внешнего сервера

Заключение

Выбор системы мониторинга зависит от ваших задач и инфраструктуры:

Сценарий Рекомендованное решение
Малый сервер, быстрый старт Netdata
Большая среда с SNMP‑устройствами Zabbix
Гибкая система метрик + Grafana Prometheus + Grafana
Логи + Метрики в одном стеке Loki + Promtail + Alertmanager
Облачное решение без собственного сервера Datadog

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

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

Инструменты Linux‑администратора: сбор и обработка логов

- Опубликовано в Администрирование

Введение

В мире UNIX‑подобных систем логи являются главным источником информации о работе сервера, аутентификации пользователей, сетевых событий и многого другого. Без надёжной системы сбора и анализа логов администратор теряет возможность быстро реагировать на инциденты, проводить аудит и оптимизировать ресурсы.
В этой статье мы рассмотрим ключевые инструменты Linux‑администратора для сбора и обработки логов: от простых файловых систем до распределённых решений с агрегацией в реальном времени.

⚠️ Не забывайте регулярно проверять логи – это ваш первый сигнал о проблеме.

Основная часть

1. Syslog‑совместимые демоны

Самый базовый способ сбора логов — использовать системный журнал rsyslog (или альтернативы, такие как syslog-ng, journald).

# Пример конфигурации rsyslog для отправки логов на удалённый сервер
module(load="imudp")          # Включаем UDP‑порт 514
input(type="imudp" port="514")

# Перенаправляем системные сообщения в удаленный syslog
*.* @192.168.1.10:514
  • Преимущества: простота, встроена в большинство дистрибутивов.
  • Недостатки: ограниченная гибкость фильтрации и форматирования.

2. Журналы systemd – journald

Системы на базе systemd используют journalctl, который хранит бинарный журнал, поддерживает индексацию и шифрование.

# Просмотр последних 50 записей сервиса sshd
journalctl -u sshd.service -n 50

# Экспорт в файл для дальнейшего анализа
journalctl --output=export > /tmp/ssh.log

📌 Tip: journald хранит логи в памяти, если включён параметр Storage=persistent, они сохраняются на диск.

3. Агент logstash + Elasticsearch + Kibana (ELK)

Для крупных инфраструктур необходима масштабируемая система сбора и визуализации логов. ELK‑стек позволяет собирать данные из множества источников, индексировать их в реальном времени и строить интерактивные дашборды.

# Пример конфигурации Logstash для чтения syslog‑файлов
input {
  file {
    path => "/var/log/*.log"
    start_position => "beginning"
  }
}
filter {
  grok { match => { "message" => "%{SYSLOGTIMESTAMP:timestamp} %{SYSLOGHOST:host} %{DATA:program}: %{GREEDYDATA:msg}" } }
}
output {
  elasticsearch {
    hosts => ["http://es01.example.com:9200"]
    index => "system-logs-%{+YYYY.MM.dd}"
  }
}
Компонент Задача
Filebeat Лёгкий агент, отправляющий логи в Logstash/Elasticsearch
Logstash Парсинг и трансформация данных
Elasticsearch Хранение и поиск по индексированным логам
Kibana Визуализация и дашборды

4. Системы мониторинга и алёртов – Prometheus + Alertmanager

Хотя Prometheus в первую очередь собирает метрики, его можно использовать для сбора лог‑схем с помощью promtail (часть Loki). Это упрощает хранение больших объёмов текстовых сообщений без сложного индекса.

# promtail.yaml – пример конфигурации
server:
  http_listen_port: 9080
  grpc_listen_port: 0

positions:
  filename: /tmp/positions.yaml

clients:
  - url: http://loki:3100/loki/api/v1/push

scrape_configs:
  - job_name: system_logs
    static_configs:
      - targets:
          - localhost
        labels:
          job: varlogs
          __path__: /var/log/*.log

5. Интеграция с SIEM‑решениями

Для корпоративных сред часто требуется подключить логи к системам безопасности (SIEM), таким как Splunk, QRadar или открытые решения типа Wazuh. Это позволяет автоматически распознавать угрозы и генерировать отчёты.

# Установка Wazuh manager
curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | apt-key add -
echo "deb https://packages.wazuh.com/4.x/apt stable main" > /etc/apt/sources.list.d/wazuh.list
apt update && apt install wazuh-manager

Заключение

Сбор и обработка логов – фундаментальная обязанность Linux‑администратора. Начните с простых систем rsyslog и journald, а по мере роста инфраструктуры переходите к более мощным решениям: ELK‑стек, Loki/Prometheus или SIEM‑платформы. Ключевые моменты:

  1. Непрерывный сбор – настройте агентов так, чтобы логи не терялись.
  2. Фильтрация и парсинг – используйте шаблоны (grok) для структурирования данных.
  3. Хранение и поиск – индексируйте логи в Elasticsearch или Loki.
  4. Визуализация – Kibana, Grafana дают быстрый доступ к информации.
  5. Автоматические алерты – интеграция с Alertmanager или SIEM повышает реактивность.

Соблюдая эти принципы, вы сможете быстро обнаруживать аномалии, проводить аудит и поддерживать высокую надёжность ваших Linux‑систем.

Linux‑Админ 101: от терминала до мастера

- Опубликовано в Администрирование

Введение

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

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


Основная часть

1. Знакомство с терминалом

Терминал – это главный инструмент администрирования Linux. Он позволяет выполнять команды, управлять файлами, просматривать логи и многое другое.

# Проверяем версию ядра
uname -r

# Список файлов в текущей директории
ls -la

Подсказка: Используйте автодополнение (Tab) для ускорения работы с командами.

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

В разных дистрибутивах используются разные менеджеры пакетов: apt (Debian/Ubuntu), yum/dnf (CentOS/RHEL/Fedora), pacman (Arch).

Дистрибутив Менеджер пакетов Пример установки
Ubuntu apt sudo apt install nginx
CentOS 7 yum sudo yum install httpd
Fedora dnf sudo dnf install apache
Arch pacman sudo pacman -S nginx
# Обновляем список пакетов и сами пакеты (Ubuntu)
sudo apt update && sudo apt upgrade

# Устанавливаем пакет (CentOS 7)
sudo yum install vim

3. Конфигурирование сетевых интерфейсов

Ниже пример настройки статического IP‑адреса в Ubuntu через файл /etc/netplan/01-netcfg.yaml.

network:
  version: 2
  ethernets:
    eth0:
      dhcp4: no
      addresses: [192.168.1.100/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]

После изменения файла применяем:

sudo netplan apply

4. Работа с пользователями и группами

Создание пользователя, добавление в группу и установка прав.

# Добавляем нового пользователя
sudo useradd -m -s /bin/bash alice

# Устанавливаем пароль
sudo passwd alice

# Добавляем пользователя в группу sudo
sudo usermod -aG sudo alice

Права доступа можно управлять через chmod и chown.

# Делаем файл исполняемым для всех
chmod +x script.sh

# Меняем владельца файла
chown root:root /etc/ssh/sshd_config

5. Управление службами с systemd

Система управления сервисами systemd позволяет контролировать запуск, остановку и статус услуг.

# Проверка статуса службы nginx
sudo systemctl status nginx

# Перезапуск службы
sudo systemctl restart nginx

# Включение автозапуска при загрузке
sudo systemctl enable nginx

6. Мониторинг и логирование

Основные инструменты: top, htop, journalctl, syslog.

# Просмотр системного журнала за последние 100 строк
sudo journalctl -n 100

# В реальном времени отслеживаем нагрузку на CPU
top

7. Безопасность и бэкапы

  • SSH: Настройте ключи, отключите логин по паролю.
  • Firewall: ufw (Ubuntu) или firewalld (CentOS).
  • Резервные копии: rsync, tar, облачные решения.
# Открываем порт 22 в UFW
sudo ufw allow 22/tcp

# Создаём резервную копию каталога /var/www
tar -czf www_backup_$(date +%F).tar.gz /var/www

Заключение

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

Помните: чем больше вы экспериментируете в тестовой среде, тем увереннее будете работать на продакшене. Удачи в ваших Linux‑приключениях!