4. SYS and UDEV

 

### 1. Управление устройствами через /sys/ и udev

#### 1.1 Теоретическое объяснение концепции

Управление устройствами в Linux осуществляется через файловую систему **/sys/**, которая предоставляет интерфейс для взаимодействия с ядром системы. Она позволяет получить информацию о всех подключенных устройствах и их характеристиках. Udev (User Device Manager) — это демон, который отслеживает изменения в оборудовании и автоматизирует его настройку при обнаружении нового устройства.

 

#### 1.2 Практическое применение с примерами команд/конфигураций

**Примеры команд:**

- Просмотр всех устройств:

```bash

$ tree /sys/devices/

```

- Проверка информации о дисках:

```bash

$ ls /sys/block/

```

- Отслеживание событий управляющего устройства:

```bash

$ udevadm monitor

```

 

**Пример настройки:**

Создание правила udev для автоматического монтирования USB-диска:

```bash

$ nano /etc/udev/rules.d/99_usbmount.rules

```

Добавьте:

```bash

ACTION=="add", SUBSYSTEM=="block", ATTR{idVendor}=="XXXX", ATTR{idProduct}=="YYYY", RUN+="/bin/mount /dev/%k /mnt/usb"

```

 

#### 1.3 Скриншоты или логи

![스크린샷 urządzenia](https://example.com/device-screenshot.png)

 

**Лог отслеживания udev:**

```bash

KERNEL[2023-09-01T12:34:56] add  /devices/pci0000:00/usb1/1-1 (usb)

```

 

#### 1.4 Типичные use-cases

- Автоматическая настройка параметров устройств при подключении.

- Динамическое изменение прав доступа к устройствам.

 

#### 1.5 Возможные проблемы и методы их решения

- **Проблема:** Не обнаруживаются новые устройства.  

  **Решение:** Перезагрузите демон udev:

```bash

$ sudo systemctl restart udev

```

- **Проблема:** Ошибки в файлах правил udev.  

  **Решение:** Проверьте синтаксис и используйте `udevadm test` для проверки.

 

---

 

### 2. Работа с системными сервисами через systemd

#### 2.1 Теоретическое объяснение концепции

Systemd — это менеджер/init-система, которая отвечает за запуск и управление службами (daemon'ами) в Linux. Он предоставляет высокоуровневые возможности управления процессами.

 

#### 2.2 Практическое применение с примерами команд/конфигураций

**Примеры команд:**

- Просмотр состояния всех сервисов:

```bash

$ systemctl list-units --type=service

```

- Запуск и остановка.service:

```bash

$ sudo systemctl start apache2  

$ sudo systemctl stop apache2

```

 

**Пример настройки:**

Создание своего собственного сервиса:

```bash

$ nano /etc/systemd/system/myapp.service

```

Добавьте:

```bash

[Unit]

Description=My Application

After=network.target

 

[Service]

ExecStart=/usr/local/bin/myapp

Restart=always

 

[Install]

WantedBy=multi-user.target

```

 

#### 2.3 Скриншоты или логи

![스크린샷 systemctl](https://example.com/systemctl-screenshot.png)

 

**Лог службы apache:**

```bash

$ journalctl -u apache2

```

 

#### 2.4 Типичные use-cases

- Управление стандартными и пользовательскими службами.

- Автоматизация запуска приложений при загрузке системы.

 

#### 2.5 Возможные проблемы и методы их решения

- **Проблема:** Сервис не запускается.  

  **Решение:** Проверьте логи и файл конфигурации:

```bash

$ journalctl -u myapp  

$ systemctl status myapp

```

- **Проблема:** Зависимости между службами не соблюдены.  

  **Решение:** Убедитесь, что все необходимые зависимости указаны в файле конфигурации.

 

---

 

### 3. Создание RAID-массива с помощью mdadm

#### 3.1 Теоретическое объяснение концепции

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

 

#### 3.2 Практическое применение с примерами команд/конфигураций

**Примеры команд:**

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

```bash

$ sudo mdadm --create /dev/md0 --level=1 /dev/sdb1 /dev/sdc1

```

- Проверка состояния RAID:

```bash

$ cat /proc/mdstat

```

 

**Пример настройки:**

Добавление RAID в fstab:

```bash

$ nano /etc/fstab

```

Добавьте:

```bash

/dev/md0  /mnt/raid  ext4  defaults  0  2

```

 

#### 3.3 Скриншоты или логи

![스크рин샷 RAID](https://example.com/raid-screenshot.png)

 

**Лог состояния mdstat:**

```bash

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4]

md0 : active raid1 sdc1[1] sdb1[0]

      2097136 blocks super 1.2 [2/2] [UU]

```

 

#### 3.4 Типичные use-cases

- Создание надежного хранилища данных с репликой (RAID1).

- Увеличение скорости доступа к данным (RAID0).

 

#### 3.5 Возможные проблемы и методы их решения

- **Проблема:** Не работает RAID.  

  **Решение:** Проверьте журналирующие записи:

```bash

$ dmesg | grep mdadm

```

- **Проблема:** Потеря диска в массиве.  

  **Решение:** Удалите диск и восстановите массив:

```bash

$ sudo mdadm --remove /dev/md0 /dev/sdb1

$ sudo mdadm --add /dev/md0 /dev/sdb2

```

 

---

 

### 4. Настройка SELinux и PAM

#### 4.1 Теоретическое объяснение концепции

SELinux (Security-Enhanced Linux) — это система безопасности, обеспечивающая контроль доступа к ресурсам системы. PAM (Pluggable Authentication Modules) — это модульная система аутентификации.

 

#### 4.2 Практическое применение с примерами команд/конфигураций

**Примеры команд:**

- Проверка статуса SELinux:

```bash

$ sestatus

```

- Управление PAM:

```bash

$ nano /etc/pam.d/system-auth

```

 

**Пример настройки:**

Настройка SELinux для Apache:

```bash

$ semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?"

$ restorecon -Rv /var/www/html

```

 

#### 4.3 Скриншоты или логи

![스크рин샷 SELinux](https://example.com/selinux-screenshot.png)

 

**Лог SELinux:**

```bash

$ cat /var/log/audit/audit.log | grep denied

```

 

#### 4.4 Типичные use-cases

- Усиление безопасности сервера с помощьюSELinux.

- Настройка аутентификации для различных приложений.

 

#### 4.5 Возможные проблемы и методы их решения

- **Проблема:** SELinux блокирует необходимые действия.  

  **Решение:** Добавьте правило в SELinux:

```bash

$ setsebool -P httpd_can_network_connect 1

```

- **Проблема:** PAM не работает корректно.  

  **Решение:** Проверьте конфигурацию и убедитесь, что все модули загружены.

 

---

 

### 5. Управление группами и пользователями в Linux

#### 5.1 Теоретическое объяснение концепции

В Linux пользователи и группы организуются для управления правами доступа к ресурсам системы.

 

#### 5.2 Практическое применение с примерами команд/конфигураций

**Примеры команд:**

- Создание пользователя:

```bash

$ sudo adduser new_user

```

- Добавление пользователя в группу:

```bash

$ sudo usermod -aG wheel new_user

```

 

#### 5.3 Скриншоты или логи

![스크рин샷 пользователей](https://example.com/users-screenshot.png)

 

**Лог создания пользователя:**

```bash

$ tail /var/log/auth.log | grep adduser

```

 

#### 5.4 Типичные use-cases

- Управление доступом к системе для разных категорий пользователей.

- Организация работы в команде с различными уровнями прав.

 

#### 5.5 Возможные проблемы и методы их решения

- **Проблема:** Пользователь не имеет требуемых прав.  

  **Решение:** Убедитесь, что пользователь добавлен в нужную группу:

```bash

$ groups new_user

```

- **Проблема:** Не удается удалить пользователя.  

  **Решение:** Убедитесь, что пользователь не залогинен и его домашний каталог не используется:

```bash

$ sudo deluser --remove-home new_user

```

 

---

 

### 6. Настройка резервного копирования с помощью rsync

#### 6.1 Теоретическое объяснение концепции

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

 

#### 6.2 Практическое применение с примерами команд/конфигураций

**Примеры команд:**

- Создание резервной копии:

```bash

$ rsync -avz /home/user/ backup/

```

- Автоматизация с помощью cron:

```bash

$ crontab -e  

@daily rsync -avz /home/user/ backup/

```

 

#### 6.3 Скриншоты или логи

![스크рин샷 rsync](https://example.com/rsync-screenshot.png)

 

**Лог выполнения rsync:**

```bash

$ tail /var/log/syslog | grep rsync

```

 

#### 6.4 Типичные use-cases

- Регулярное резервное копирование данных.

- Синхронизация файлов между серверами.

 

#### 6.5 Возможные проблемы и методы их решения

- **Проблема:** rsync не передает изменения.  

  **Решение:** Убедитесь, что все опции указаны правильно и есть доступ к каталогам.

- **Проблема:** Высокая нагрузка на сервер.  

  **Решение:** Настройте rsync с параметрами для снижения нагрузки:

```bash

$ rsync --bwlimit=100 /source/ /destination/

```

 

---

 

### Заключение

В этой статье мы рассмотрели основные аспекты работы с Linux, включая управление RAID-массивами, SELinux, пользователями и резервным копированием. Эти знания помогут вам эффективно управлять сервером и обеспечить безопасность данных.

  • SYS, UDEV
  • 0 Utilizadores acharam útil
Esta resposta foi útil?

Artigos Relacionados

1. Linux Kernel & Devices

Вот развернутый план настройки Linux с примерами и пояснениями: Linux Kernel & Devices...

2. FS and quota

Управление файловыми системами и квотами в Linux 1. Структура файловых систем и мониторинг...

3. Service

Configuration file /etc/systemd/system/autosshd443.service is marked world-inaccessible. This...

0. SREUP

Обзор эксплуатации и автоматизации 1. Классификация работ по эксплуатации и техническому...

5. DEPLOY1 BASH

Вот полная документация по каждому пункту с подробным описанием: 1. Основы автоматизации...