---
# System prepended metadata

title: Стажировка Angara Security - LINUX

---

### **Летфуллин Р.И.**

---

# Модуль #1 
## 1. Определение и настройка аппаратной части
### Задание для самостоятельной работы:
Установить Ubuntu Server на VM VirtualBox.

![](https://hackmd.io/_uploads/rJG8e0EPh.jpg) ![](https://hackmd.io/_uploads/S135xR4D3.jpg)

1. Просмотреть информацию о процессоре и модулях оперативной памяти.

<span style="background-color: beige;">Для просмотра информации о процессоре, была использова следующая команда: **lscpu**</span>

![](https://hackmd.io/_uploads/HypiN0EP3.jpg)

<span style="background-color: beige;">Для просмотра информации о модулях оперативной памяти, была использова следующая команда: **sudo dmidecode -t memory**</span>

![](https://hackmd.io/_uploads/SJssDAVvh.jpg)

<span style="background-color: beige;">Также можно воспользоваться командой **free -h** для просмотра общей информации об использовании оперативной памяти в системе:</span>

![](https://hackmd.io/_uploads/SyZ-_CVvh.jpg)

2. Определить модель жесткого диска.

<span style="background-color: beige;">Для определения модели жесткого диска, была использова следующая команда: **sudo lshw -class disk**</span>

![](https://hackmd.io/_uploads/rkfjdCNv2.jpg)

3. Вывести сведения обо всех платах расширения на шине PCIEx.

<span style="background-color: beige;">Для вывода сведений обо всех платах расширения, подключенных к шине PCI Express , была использова следующая команда: **lspci**</span>

![](https://hackmd.io/_uploads/rJOmKC4D2.jpg)

4. Отключить звуковую карту.

Я использовал два метода:

*Способ 1*

<span style="background-color: beige;">Для начала нужно узнать имя звуковой карты. Используем для этого команду: **lsmob | grep snd**</span>

![](https://hackmd.io/_uploads/HkkBjAEwh.jpg)

<span style="background-color: beige;">Вводим команду: **sudo nano /etc/modprobe.d/blacklist.conf** для открытия файла **blacklist.conf** в текстовом редакторе **nano** и заносим имя карты в blacklist, сохраняем, выходим</span>

![](https://hackmd.io/_uploads/ByEdnCVPn.jpg)

<span style="background-color: beige;">Перезапускаем систему командой: **reboot**</span>

![](https://hackmd.io/_uploads/S1bkRRNDn.jpg)

*Способ 2*

<span style="background-color: beige;">Используем утилиту **alsa-utils**</span>

<span style="background-color: beige;">Устанавливаем командой: **sudo apt-get install alsa-utils**</span>

<span style="background-color: beige;">Запускаем командой: **alsamixer**</span>

![](https://hackmd.io/_uploads/SkxUgyrPn.jpg)

<span style="background-color: beige;">Нажимая **"М"** отключаем звуковую карту</span>

![](https://hackmd.io/_uploads/B15Il1HDn.jpg)

<span style="background-color: beige;">Перезапускаем систему командой: **reboot**</span>

<span style="background-color: #7fc7ff;">Чтобы проверить, включена или выключина ли звуковая карта, можно использовать следующую команду: **aplay -l**</span>

<span style="background-color: #7fc7ff;">до отключения</span>

![](https://hackmd.io/_uploads/Hyzsz1rDn.jpg)

<span style="background-color: #7fc7ff;">после отключения</span>

![](https://hackmd.io/_uploads/rJAsfyBw2.jpg)

5. Выключить контроллер usb.

<span style="background-color: beige;">Используем следующие команды: **lsusb** , далее **echo "usb2" > /sys/bus/usb/drivers/usb/unbind**</span>

![](https://hackmd.io/_uploads/Hkk0ByHv3.jpg)

<span style="background-color: beige;">Для включения **echo "usb2" > /sys/bus/usb/drivers/usb/bind**</span>

## 2 Загрузка системы
### Задание для самостоятельной работы:

1. Выяснить какой загрузчик ОС используется в вашей системе.

<span style="background-color: beige;">Для определения, какая загрузчик ОС используется, введем следующую команду: **ls -l /boot**</span>

![](https://hackmd.io/_uploads/rJXuJgBD2.jpg)

<span style="background-color: beige;">Из полученного результата, можно сделать вывод, что на нашей машине используется ОС **GRUB**</span>

2. Просмотреть журнал событий ядра.

<span style="background-color: beige;">Для этого ввнодим команду: **dmesg**</span>

![](https://hackmd.io/_uploads/H1ZpbgBv3.jpg)

<span style="background-color: beige;">тобы просмотреть записи журнала постранично, можно использовать команду: **dmesg | less**</span>

![](https://hackmd.io/_uploads/B1THGeHPn.jpg)
![](https://hackmd.io/_uploads/Hkw8MgSwn.jpg)

3. Изменить носитель по умолчанию, используемый для загрузки ОС.

<span style="background-color: beige;">Вводим следующую команду для редактирования файла конфигурации загрузчика **GRUB**:**sudo nano /etc/default/grub**</span>

![](https://hackmd.io/_uploads/HJf7_cSD2.jpg)


<span style="background-color: beige;">Находим строку **GRUB_DEFAULT=0** в открывшемся файле. Значение **0** означает, что будет загружаться первый носитель из списка.Меняем номер **0**, на - **1**, - **2**, и так далее, на номер носителя, который мы хотим установить по умолчанию.</span>

<span style="background-color: beige;">Далее, сохраняем изменения и выходим.
Теперь нужно перезапустить систему командой **reboot**</span>

4. Попробовать загрузить ОС в режиме, отличающемся от режима по умолчанию.

<span style="background-color: beige;">Вводим следующую команду **sudo nano /etc/default/grub**</span>

<span style="background-color: beige;">Ищем строку **GRUB_CMDLINE_LINUX_DEFAULT** и добавляем нужный параметр загрузки
</span>
<span style="background-color: beige;">Сохраняем изменения и закрываем файл
Обновляем конфигурацию **grub:sudo update-grub**</span>

![](https://hackmd.io/_uploads/ByMM59Hw2.jpg)

<span style="background-color: beige;">Вот несколько примеров параметров загрузки:</span>

<span style="background-color: beige;">**single** - загрузка в однопользовательском режиме.
**recovery** - загрузка в режиме восстановления.
**init=/bin/bash** - загрузка в режиме командной строки.</span>

5. Узнать какой из стилей инициализации используется в вашей ОС.

<span style="background-color: beige;">Вводим следующую команду в терминал **ps -p 1 -o comm=**</span>

![](https://hackmd.io/_uploads/BJ38jcrwn.jpg)

<span style="background-color: beige;">Выводится **systemd**, значит, наша система использует **init**-систему **systemd**</span>

## 3 Инициализация системы
### Задание для самостоятельной работы:

1. Изменить режим запуска по умолчанию ОС.

<span style="background-color: beige;">Для изменения режима запуска по умолчанию ОС в, можно использовать утилиту **systemctl**. Введим следующую команду в терминале: **sudo systemctl set-default multi-user.target**</span>

<span style="background-color: beige;">После этого наша ОС будет загружаться в режиме **multi-user.target**</span>

<span style="background-color: beige;">Следует проверить, сработала ли команда **sudo systemctl set-default multi-user.target**, выполним следующую команду: **sudo systemctl get-default**</span>

<span style="background-color: beige;">Если вывод команды равен **multi-user.target**, то команда отработала корректно.</span>

![](https://hackmd.io/_uploads/HyK9GjHDn.jpg)

2. Переключиться между несколькими режимами работы.

<span style="background-color: beige;">Для переключения между однопользовательским режимом и многопользовательским режимом без графического интерфейса, можно воспользоваться командами: </span>

<span style="background-color: beige;">**systemctl set-default -f rescue.target** - Однопользовательский</span>

<span style="background-color: beige;">**systemctl set-default -f multi-user.target** - Многопользовательский</span>

![](https://hackmd.io/_uploads/SJLQmTSD2.jpg)

3. Убрать из автозапуска по умолчанию службу сети.

<span style="background-color: beige;">Выполняем команду **sudo systemctl list-unit-files**, чтобы получить список всех доступных юнитов и их состояний. Далее находим службу сети, которую мы хотим отключить.</span>

![](https://hackmd.io/_uploads/H1weWpSv2.jpg)

<span style="background-color: beige;">Отключаем: **sudo systemctl disable systemd-networkd**</span>

![](https://hackmd.io/_uploads/rk7-W6HP3.jpg)

4. Проверить статус службы аудио.

<span style="background-color: beige;">Для проверки статуса службы аудио, используем команду: **systemctl status sound.target**</span>

![](https://hackmd.io/_uploads/r1h1xpBwh.jpg)

5. Перезагрузить ПК через работу с уровнями выполнения или таргетами.

<span style="background-color: beige;">Перезагрузка с использованием уровней выполнения: **sudo systemctl reboot**</span>

<span style="background-color: beige;">Перезагрузка с использованием таргетов: **sudo systemctl isolate reboot.target**</span>

---

# Модуль #2
## 1. Разбиение жесткого диска
### Задание для самостоятельной работы:

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

Подключаем дополнительный диск 

![](https://hackmd.io/_uploads/r1iqwwZd2.jpg)

Убедимся, что созданный нами диск подключен

![](https://hackmd.io/_uploads/S1IjTwbdh.jpg)

Создаём разделы на подключенном диске

Для этого вводим команду **sudo fdisk /dev/sdb** в терминале 

![](https://hackmd.io/_uploads/HJauYw-un.jpg)

Далее **"n"** - новый раздел

Затем выбераем тип раздела - **"p"** (основной) или **"l"** (логический)

Далее номер раздела (основных может быть до 4 на одном диске)

Затем вводим размер раздела

После создания разделов нажмите **"w"** для сохранения изменений и выхода из **fdisk**

Создано 2 основных и 2 логических раздела 

![](https://hackmd.io/_uploads/rJHbnPWO2.jpg)

2. Смонтировать в них несколько пустых корневых каталогов

Создадим в корне / два каталога **Data1 Data2 **

![](https://hackmd.io/_uploads/ryquodWd2.jpg)

С помощью команды **blkid** узнаем **UUID** дисков и внесем их в **fstab**

![](https://hackmd.io/_uploads/B1zFT_Zd3.jpg)

Далее **reboot**

И проверяем **df -h**

![](https://hackmd.io/_uploads/B1GfRu-O2.jpg)

3. Перенести каталог /home на отдельный раздел.

Выйдем из сеанса пользователя, находящегося в каталоге **/home**. Выполнив команду **cd ~** и затем **cd ..**, чтобы перейти в родительский каталог.

Затем выполним команду **sudo mv /home /old_home**, чтобы переименовать текущий каталог **/home** в **/old_home**.

Создадим новый пустой каталог **/home** с помощью команды **sudo mkdir /home**

Далее выполним команду **sudo mount /dev/sdb1 /home**, чтобы смонтировать новый раздел на **/home**.

Проверим, что раздел успешно смонтирован, выполним команду **df -h** и убедимся, что **/home** указывает на новый раздел.

![](https://hackmd.io/_uploads/ryMlbKW_3.jpg)

Отредактируем файл **/etc/fstab**, используя команду **sudo nano /etc/fstab**.

Добавим новую запись в файл **/etc/fstab**, указывая монтирование раздела **/dev/sdb1** на **/home**. 

**/dev/sdb1 /home ext4 defaults 0 2**

![](https://hackmd.io/_uploads/B15hbKbd2.jpg)

Сохраним и закроем файл **/etc/fstab**.

Далее **reboot** и проверяем 

![](https://hackmd.io/_uploads/BkDWzt-Oh.jpg)

Удалим **/old_home**

![](https://hackmd.io/_uploads/HyNBMYZdn.jpg)

![](https://hackmd.io/_uploads/r14wMYWO2.jpg)

4. Создать еще один раздел подкачки

Добавили новый жесткий диск в систему

**sdc**

![](https://hackmd.io/_uploads/Hywf4tbOn.jpg)

Далее **sudo fdisk /dev/sdc** 

Установим тип раздела подкачки в **"Linux swap"** с помощью кода файловой системы **82**.

![](https://hackmd.io/_uploads/HyzsEFZun.jpg)

Теперь нужно отметить созданный раздел подкачки для использования системой. В терминале выполним команду **sudo mkswap /dev/sdc1**

Активируем раздел подкачки с помощью команды **sudo swapon /dev/sdc1**. Это позволит системе начать использовать раздел подкачки для управления виртуальной памятью.

Чтобы сделать изменения постоянными после перезагрузки системы, добавим запись в файл **/etc/fstab**. Откроем файл **/etc/fstab** и добавим следующую строку в конец файла: **/dev/sdc1 none swap sw 0 0**

![](https://hackmd.io/_uploads/ryh38K-u3.jpg)

Проверим, что раздел подкачки успешно создан и активирован, выполним команду **sudo swapon --show**. 

![](https://hackmd.io/_uploads/ByAVPFWu2.jpg)

5. Добавить еще два диска и создать на нем несколько логических томов (LVM).

Добавил 2 диска по 2Gb

![](https://hackmd.io/_uploads/rkiZKtZ_3.jpg)

Убедимся, что созданные нами диски подключены

![](https://hackmd.io/_uploads/HJ0HYt-On.jpg)

Создадим физические тома (Physical Volumes) на новых дисках с помощью команды **sudo pvcreate /dev/sdd /dev/sde**. Это превратит новые диски в физические тома, которые можно будет использовать в LVM.

![](https://hackmd.io/_uploads/SyWd9KZO2.jpg)

Создадим группу томов (Volume Group) и добавим физические тома в нее с помощью команды **sudo vgcreate mytom /dev/sdd /dev/sde**.

![](https://hackmd.io/_uploads/SkHE0t-dn.jpg)

Cоздадим логические тома (Logical Volumes) внутри группы томов с помощью команды **sudo lvcreate -L <размер_тома> -n <имя_тома> myvg**. 

![](https://hackmd.io/_uploads/ry_LAKZ_3.jpg)

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

![](https://hackmd.io/_uploads/rkhdAKb_h.jpg)

![](https://hackmd.io/_uploads/H1U3AF-_n.jpg)

6. Попробовать переносить тома с одного жесткого диска на другой без остановки ОС.

**В ПРОЦЕССЕ**

7. Определить точную версию ядра ОС.

Для этого воспользуемся командой **uname -srm**

![](https://hackmd.io/_uploads/ryD3Jcbu2.jpg)

## 2. Установка загрузчика
### Задание для самостоятельной работы:

1. Добавить таймаут на старт операционной системы в 10 секунд.

выполните команду: **sudo nano /etc/default/grub**

Найдите строку, начинающуюся с **GRUB_TIMEOUT** и измените ее значение на **10** 

![](https://hackmd.io/_uploads/HJValcbOh.jpg)

Если в файле уже присутствует строка **GRUB_TIMEOUT_STYLE**, убедитесь, что ее значение установлено в menu

Обновите конфигурацию загрузчика GRUB с помощью команды: 

**sudo update-grub**

![](https://hackmd.io/_uploads/B1V7W5WOn.jpg)

Изменить текст выбора операционной системы.

Откройте терминал и выполните команду:

**sudo nano /etc/default/grub**

![](https://hackmd.io/_uploads/Hk7xBqb_3.jpg)

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

Найдите строку, начинающуюся с **GRUB_DISTRIBUTOR** и измените ее значение на текст, который вы хотите видеть в качестве выбора операционной системы. 

**sudo update-grub**

![](https://hackmd.io/_uploads/Hyl6bHcWd3.jpg)
![](https://hackmd.io/_uploads/Bk4GB9Wu2.jpg)

3. Попробовать подключить жесткий диск с Windows и указать вашему загрузчику на возможность загружаться с добавленного диска.

![](https://hackmd.io/_uploads/H1jN1bfdn.jpg)

![](https://hackmd.io/_uploads/S1brkZz_2.jpg)



4. Установить загрузку Windows опцией по умолчанию.

**В ПРОЦЕССЕ**

## 3. Управление библиотеками
### Задание для самостоятельной работы:
1. Посмотреть текущие пути к библиотекам

**ldconfig -v** покажет в каких директориях находятся какие библиотеки

![](https://hackmd.io/_uploads/ByX8t5Z_n.jpg)

2. Добавить свою домашнюю папку к каталогам нахождения библиотек.

Для этого воспользуемся переменной **LD_LIBRARY_PATH**

![](https://hackmd.io/_uploads/rkS895b_2.jpg)

3. Рассмотреть библиотеки, используемые утилитой ifconfig.

![](https://hackmd.io/_uploads/BkKK95-On.jpg)

## 4. Управление пакетами ПО в Debian
### Задание для самостоятельной работы:
1. Добавить в репозитории информацию для работы с пакетом java.

Добавили информацию 

![](https://hackmd.io/_uploads/SJHXscWOh.jpg)

2. Установить java со всеми зависимостями.

![](https://hackmd.io/_uploads/BkeKjc-_n.jpg)

![](https://hackmd.io/_uploads/Hyul29bd3.jpg)

3. Удалить java

**sudo apt-get remove --auto-remove openjdk-11-jdk**

![](https://hackmd.io/_uploads/rk3W6qZOh.jpg)

4. Установить webmin.

Установка зависимостей необходимые для работы **Webmin**

![](https://hackmd.io/_uploads/rkscC9-un.jpg)

Добавим репозиторий

![](https://hackmd.io/_uploads/SJApC9-On.jpg)

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

![](https://hackmd.io/_uploads/ryr2yo-O2.jpg)

Добавим его в список доверенных ключей

![](https://hackmd.io/_uploads/SJ18Jobd2.jpg)

Обновим список репозиториев

![](https://hackmd.io/_uploads/S18AyoZu3.jpg)

**sudo apt-get install webmin**

Проверяем 

![](https://hackmd.io/_uploads/ryuvlsWu3.jpg)

5. Обновить все пакеты ПО

**sudo apt update**

![](https://hackmd.io/_uploads/ByfoApZ_n.jpg)

**sudo apt upgrade**

![](https://hackmd.io/_uploads/ByAo0p-dn.jpg)

## 5. Управление пакетами ПО в RedHat
### Задание для самостоятельной работы:

1. Добавить в репозитории информацию для работы с пакетом java.

![](https://hackmd.io/_uploads/SykutAbd3.jpg)

2. Установить java со всеми зависимостями.

![](https://hackmd.io/_uploads/SyOiFAbdh.jpg)
![](https://hackmd.io/_uploads/H10jtAWOn.jpg)

3. Удалить java.

![](https://hackmd.io/_uploads/HJB1cAWun.jpg)

4. Установить webmin.

![](https://hackmd.io/_uploads/SkSQq0-d2.jpg)
![](https://hackmd.io/_uploads/HysX9Ab_2.jpg)
![](https://hackmd.io/_uploads/ByyEc0b_2.jpg)

5. Обновить все пакеты ПО.

**yum upgrade**

![](https://hackmd.io/_uploads/ByND9Cbdh.jpg)

---

# Модуль #3
## 1. Работа в командной строке
### Задание для самостоятельной работы:

1. Вывести содержимое домашней папки пользователя в файл с именем "list" в текущей папке.

Перейдем в домашнюю папку пользователя с помощью команды **cd ~**

Командой **ls** глянем списки файлов и каталогов в текущей директории

Для того чтобы вывести содержимое домашней папки пользователя в файл с именем **list** в текущей папке, выполним следующую команду **ls ~ > list**

Или можно использовать **ls -la** для вывода подробного списка содержимого домашней папки

И получим: **-bash: list:Permission denied**

![](https://hackmd.io/_uploads/HJGA3u4O2.jpg)

Походу у нас нет необходимых разрешений, попробуем изменить их с помощью команды **chmod 777 ~** 

**"777"** - предоставит все возможные права на текущий файл 

![](https://hackmd.io/_uploads/B1eQAOE_n.jpg)

Повторим команду **ls ~ > list** и проверим с помощью команды **cat**

![](https://hackmd.io/_uploads/ry2UA_Nu2.jpg)

2. Вывести содержимое домашней папки пользователя в файл с именем "list" на уровень выше текущей папки.

Наш файл **list** находится в разделе **/home**
Перенесём его на уровень выше текущей папки
Для этого воспользуемся командой **ls > ../list**
Поднимемся на уровень выше и проверим **cat list**

![](https://hackmd.io/_uploads/SJWG2qEun.jpg)

![](https://hackmd.io/_uploads/BJ60hcNd3.jpg)

3. Добавить к переменной среды PATH путь к домашней папке пользователя

Команда **export PATH=$PATH:/~**
Проверяем **echo $PATH**

![](https://hackmd.io/_uploads/rkYh52Ed3.jpg)

4. Изменить цвет и размер шрифта по умолчанию в консоли вашего пользователя.

Шрифт и размер 

**sudo dpkg-reconfigure console-setup**

Выбираем **UTF-8**, далее шрифт и размер

![](https://hackmd.io/_uploads/rkGALaN_2.jpg)
![](https://hackmd.io/_uploads/rk90UaEd3.jpg)

До
![](https://hackmd.io/_uploads/ryMgwpEOn.jpg)

После
![](https://hackmd.io/_uploads/HJuewaE_2.jpg)

Цвет текста 

Открываем **nano ~/.bashrc**

![](https://hackmd.io/_uploads/rylPhaNO3.jpg)

И вводим **PS1='\[\033[0;32m\]\u@\h:\w\$'**

![](https://hackmd.io/_uploads/rkR-b_BO2.jpg)

Сохраняемся и выходим

Обновляем текущую сессию терминала, чтобы изменения вступили в силу командой **source ~/.bashrc** и проверяем 

![](https://hackmd.io/_uploads/ByiKW_Sdh.jpg)

5. Вывести полную версию ОС в файл /os_version.txt.

Для этого воспользуемся следующей командой **uname -a > /os_version.txt**

Проверяем командой **cat /os_version.txt**

![](https://hackmd.io/_uploads/SJT7YdB_2.jpg)

## 2. Управление текстовым потоком
### Задание для самостоятельной работы:

1. Пронумеровать строчки системного лога.

**cat /var/log/syslog**

![](https://hackmd.io/_uploads/Syo02uSu3.jpg)

**cat /var/log/syslog | nl**

![](https://hackmd.io/_uploads/H1AyTdS_h.jpg)

2. Посмотреть, как системный лог будет выглядеть на печати.

**pr -F -l 50 /var/log/syslog | less**

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

 **-F** устанавливает заполнение страницы (печатных строк) до полной ширины страницы.
 
 **-l 50** устанавливает количество строк на странице (печатных строк) равным 50. Можно указать любое значение
 
 **/var/log/syslog** указывает путь к системному логу, который мы хотим просмотреть.
 
 ![](https://hackmd.io/_uploads/rk4kyFBdh.jpg)
![](https://hackmd.io/_uploads/SkdkkKSdh.jpg)

3. Посмотреть первые шесть событий любого журнала.

**journalctl | head -n 6**

![](https://hackmd.io/_uploads/r1ToLtHu2.jpg)

4. Посмотреть последние двадцать событий любого журнала.

**journalctl -n 20**

![](https://hackmd.io/_uploads/Bk_0IYrd3.jpg)

5. Отсортировать любой журнал событий по алфавиту

**journalctl | sort**

![](https://hackmd.io/_uploads/HydYPKBun.jpg)

6. Показать в логе событий системы только уникальные строки.

**journalctl | uniq -u**

![](https://hackmd.io/_uploads/Syp3uFrO2.jpg)

7. Вывести из журналов событий только события входа в систему в отдельный файл.

**journalctl -t systemd-logind > login_events.txt**

![](https://hackmd.io/_uploads/Bk1ZAFrd2.jpg)

8. Из созданного файла создать несколько файлов по событиям входа каждого отдельного пользователя (на каждого пользователя свой журнал).


9. Отсортируйте информацию так, чтоб был виден только логин и время входа/выхода.

10. Замените в созданных файлах логин на полное имя пользователя.

## 3. Основные операции с файлами
### Задание для самостоятельной работы:

1. Найти все файлы больше 100Мб в вашей ОС.

**find / -type f -size +100M**

![](https://hackmd.io/_uploads/rJGegoBuh.jpg)

2. Найти все файлы больше 1Мб в домашней папке пользователя и перенести в корневую папку, предварительно сжав.

**find ~ -type f -size +1M -exec tar -czvf /archive.tar.gz {} +**

![](https://hackmd.io/_uploads/Hy6H5hBu3.jpg)
 
Проверяем!

![](https://hackmd.io/_uploads/SJUn5hr_3.jpg)

**tar -tf /archive.tar.gz**

![](https://hackmd.io/_uploads/rJveshr_n.jpg)

3. Найти в домашней папке все файлы, начинающиеся с букв "a" по "z" и скопировать их в папку temp в домашнем "каталоге".

![](https://hackmd.io/_uploads/S1U3mpH_2.jpg)

**find ~ -type f -name '[a-z]*' -exec cp {} ~/temp \;**

![](https://hackmd.io/_uploads/ryq6mprO3.jpg)

Проверяем

![](https://hackmd.io/_uploads/rya076Sd2.jpg)

4. Сделать резервную копию загрузочного сектора диска

**sudo dd if=/dev/sda of=bootImage.img bs=512 count=1**

![](https://hackmd.io/_uploads/rJhHJCBdh.jpg)

5. Удалить все ненужные временные файлы.

**find / -type f -name "*.tpm" -delete**

![](https://hackmd.io/_uploads/SkLhyRB_2.jpg)

6. Удалить все созданные в течении выполнения самостоятельной работы каталоги

**sudo rm -r** и перечисляем созданные каталоги

![](https://hackmd.io/_uploads/S1QFNRSun.jpg)

## 4. Потоки, конвейеры и перенаправления
### Задание для самостоятельной работы:

1. Вывести результат команды ping ya.ru (десять пакетов) в файл ping.txt.

![](https://hackmd.io/_uploads/By6Ew0SOn.jpg)

2. Дописать результат команды ping r0.ru (десять пакетов) в тот же файл.

![](https://hackmd.io/_uploads/rkfXOAHu3.jpg)

3. Запустить команду с ошибкой pOng r0.ru, отправив ошибки выполнения в файл error.txt.

![](https://hackmd.io/_uploads/r1UWqAHu3.jpg)

4. Вывести результат команды ping google.com (десять пакетов) в файл ping.txt и в консоль одновременно. 

![](https://hackmd.io/_uploads/rkQJsRSun.jpg)

5. Вывести результат команды ping google.com в консоль, отображая только последние пять символов каждой строки.

![](https://hackmd.io/_uploads/Hkgoj0Buh.jpg)

## 5. Управление процессами в Linux
### Задание для самостоятельной работы:

1. Отобразить все процессы в системе.

**ps aux | less**

![](https://hackmd.io/_uploads/HJtF2Ardh.jpg)

2. Отобразить процессы только своего пользователя.

**ps -l -u root | less**

![](https://hackmd.io/_uploads/H1tmaRSd2.jpg)

3. Запустить диспетчер задач top в фоновом режиме.

![](https://hackmd.io/_uploads/r1kUCCSdh.jpg)

4. Остановить диспетчер задач, запущенный в фоновом режиме.

![](https://hackmd.io/_uploads/SJKRl18dh.jpg)

5. Остановить все запущенные процессы активного в данный момент пользователя.

**killall -u root**

![](https://hackmd.io/_uploads/rkIrW1Ud2.jpg)

6. Запустить процесс трассировки до ya.ru и свернуть его в отдельный screen.

![](https://hackmd.io/_uploads/rk_kfJI_2.jpg)

## 6. Изменение приоритетов процессов
### Задание для самостоятельной работы:

1. Запустить процесс трассировки маршрута до сайта yandex.ru с приоритетом "-10".

![](https://hackmd.io/_uploads/r17MFGLdh.jpg)

2. Понизить приоритет до "5".

![](https://hackmd.io/_uploads/SygIQYML_2.jpg)

3. Повысить приоритет до "-18".

![](https://hackmd.io/_uploads/S11NKzI_h.jpg)

4. Отслеживать запущенные процессы по количеству используемой оперативной памяти.

Запускаем **top** и нажимаем **Shift + M**

![](https://hackmd.io/_uploads/S1Ui9zU_h.jpg)

5. Вывести в консоль запущенные процессы, отображая только их id, и того, от кого они запущены.

**ps -eo user,pid ppid**

![](https://hackmd.io/_uploads/By3ojG8_3.jpg)

## 7. Поиск информации при помощи регулярных выражений
### Задание для самостоятельной работы:

1. Найти в журналах событий /var/log логи, содержащие ваш логин.

**sudo grep -r letfull /var/log**

![](https://hackmd.io/_uploads/H1n3pM8_3.jpg)

2. Найти в журналах событий файлы, содержащие слово error.

**sudo grep -r error**

![](https://hackmd.io/_uploads/H19JymLdn.jpg)

3. Найти в любом заполненном журнале событий строки, начинающиеся с заглавной S.

**grep -r '^S' /var/log/*.***

![](https://hackmd.io/_uploads/By727mUd2.jpg)

4. Найти в любом заполненном журнале событий строки, начинающиеся с заглавной и прописной s.

**sudo grep -rE '^[Ss]' /var/log/*.* | less**

![](https://hackmd.io/_uploads/H1dBIQ8O2.jpg)

![](https://hackmd.io/_uploads/S1rsSmI_h.jpg)

5. Найти в любом заполненном журнале событий строки, начинающиеся с цифр.

**sudo grep -rE '^[0-9]' /var/log**

![](https://hackmd.io/_uploads/HJyqvm8un.jpg)

![](https://hackmd.io/_uploads/SJUcDX8Oh.jpg)

6. Сохранить строчки лога, содержащие ваш логин, как отдельный файл, заменив при этом логин на слово "His Majesty".

**grep "letfull" /var/log/ | sed "s/letfull/His Majesty/g" > RINAT.txt**

![](https://hackmd.io/_uploads/r19Mim8O2.jpg)

![](https://hackmd.io/_uploads/ry-moQLd2.jpg)

![](https://hackmd.io/_uploads/HJtQsXUu2.jpg)

## 8. Текстовый редактор VI
### Задание для самостоятельной работы:

1. Набрать стихотворение в vi.

**vi stih.txt**
Далее **Enter**
Нажимаем **i**, чтобы перейти в режим вставки
Пишем стих

![](https://hackmd.io/_uploads/SJGd5nLu2.jpg)
Нажимаем **Esc**, чтобы выйти из режима вставки
Далее вводим **:wq** - что бы сохарнить
Проверяем

![](https://hackmd.io/_uploads/BJjRchIuh.jpg)

2. Поменять местами четные строчки с нечетными.

![](https://hackmd.io/_uploads/r1OV2TLd2.jpg)

![](https://hackmd.io/_uploads/rJXBhTI_3.jpg)

3. Последнюю строку продублировать.

Нажимаем клавишу **Shift + g** для перехода к последней строке.
Далее клавишу **yy** для копирования последней строки
Потом клавишу **p** для вставки скопированной строки после текущей строки.

![](https://hackmd.io/_uploads/S1U9kRIO2.jpg)

4. Вставить первую строку поле последней.

**dd** для вырезания первой строки

Потом клавишу **p** для вставки вырезаной строки после последней строки.

![](https://hackmd.io/_uploads/SJ2WfR8Oh.jpg)

5. Найти несколько слов выше и ниже по тексту.

Нажмем **/** и введите слово **“kiska”**. Затем **Enter**. Далее **n** для перехода к следующему вхождению. Или **N** для перехода к предыдущему вхождению. Нажмем **?** для поиска слова назад. **Ctrl + o** для перехода к предыдущей позиции. **Ctrl + i** для перехода к следующей позиции.

![](https://hackmd.io/_uploads/HJ7L1Mvdn.jpg)

6. Поменять во второй строчке первое и последнее слова местами.

**dw** – удалить слово
**^** - начала строки
**$** - конец строки

![](https://hackmd.io/_uploads/HkNnOzvOh.jpg)

7. Вставить первое слово в начало каждого абзаца.

![](https://hackmd.io/_uploads/S1Jm9fP_h.jpg)

8. Сохранить изменения в файле под новым именем.

**:q stih2.txt**

![](https://hackmd.io/_uploads/HyTZTfPO3.jpg)

---

# Модуль #4
## 1. Создание файловых систем
### Задание для самостоятельной работы:

1. Инициализировать новый диск в формате MBR.

![](https://hackmd.io/_uploads/rk-PeBPOh.jpg)

2. Создать на отдельном диске два основных отдела и один расширенный.

![](https://hackmd.io/_uploads/r1TEMHPd3.jpg)

3. На расширенном разделе создать еще три раздела.

![](https://hackmd.io/_uploads/HyyDISwO3.jpg)

4. Создать на каждом разделе отдельную файловую систему, один из разделов сделать разделом swap.

![](https://hackmd.io/_uploads/Sk72MPPdh.jpg)

5. Переконвертировать диск в формат GUID.

![](https://hackmd.io/_uploads/S1hptwv_2.jpg)

![](https://hackmd.io/_uploads/S1V0KvvOh.jpg)

6. Удалить расширенный раздел.

![](https://hackmd.io/_uploads/SJKdTDD_n.jpg)
![](https://hackmd.io/_uploads/HJ-FTwDO2.jpg)

7. Увеличить один из оставшихся разделов на освобожденное место.

![](https://hackmd.io/_uploads/HkGGu-d_3.jpg)

## 2. Проверка целостности файловых систем
### Задание для самостоятельной работы:

1. Установить инструменты работы с NTFS.

![](https://hackmd.io/_uploads/H19eWmdd3.jpg)

![](https://hackmd.io/_uploads/ryQlWQdun.jpg)

2. Отформатировать свободный том в формат NTFS.

![](https://hackmd.io/_uploads/BJtkOQOO2.jpg)

![](https://hackmd.io/_uploads/HJ5eOX_O2.jpg)

![](https://hackmd.io/_uploads/rkHZ_7ddn.jpg)

3. Проверить том NTFS.

![](https://hackmd.io/_uploads/SJ96i7uu3.jpg)

![](https://hackmd.io/_uploads/BJCpomdO2.jpg)

4. Вывести информацию о томе NTFS в отдельный файл.

![](https://hackmd.io/_uploads/r1UNTQ__3.jpg)

**cat ntfsinfo.txt**

![](https://hackmd.io/_uploads/SkuITmu_2.jpg)

5. Попробовать выключить журнал на томе NTFS.

![](https://hackmd.io/_uploads/ryfN0mdO2.jpg)

6. Попробовать удалить и восстановить информацию на томе NTFS.

**В ПРОЦЕССЕ**

7. Посмотреть количество свободного места на этом томе.

![](https://hackmd.io/_uploads/HJErYuO_3.jpg)

![](https://hackmd.io/_uploads/r13BY__u3.jpg)

8. Посмотреть занятое место на этом томе.

![](https://hackmd.io/_uploads/Sk61idO_h.jpg)

## 3. Монтирование файловых систем
### Задание для самостоятельной работы:

1. Создать точку монтирования в корневой файловой системе.

![](https://hackmd.io/_uploads/ryV0O9uOn.jpg)

2. Вручную подключить в нее устройство и создать на нем текстовый файл, после чего отключить.

![](https://hackmd.io/_uploads/B1YRO9__2.jpg)

3. Создать настройку автоматического монтирования указанной файловой системы.

![](https://hackmd.io/_uploads/SJKiXsO_h.jpg)

![](https://hackmd.io/_uploads/HkX37odu3.jpg)

4. Подключить сетевое устройство в файловую систему.

**В ПРОЦЕССЕ**

5. Подключить том Windows в файловую систему.

**В ПРОЦЕССЕ**


## 4. Управление квотами дисков
### Задание для самостоятельной работы:

1. Установить для диска с домашними папками квоту для пользователя системы в 100 Мб мягкую.

**В ПРОЦЕССЕ**

2. Установить для диска с домашними папками квоту для группы пользователей системы, в которую входит ваш пользователей, в 100 объектов жесткую.

**В ПРОЦЕССЕ**

3. Копируя и вставляя файлы попробовать превысить обе квоты.

**В ПРОЦЕССЕ**

4. Посмотреть отчет об использовании квот.

**В ПРОЦЕССЕ**
 
5. Отключить квоту на носителе информации.

**В ПРОЦЕССЕ**


## 5. Права доступа и владельцы файлов
### Задание для самостоятельной работы:

Задание для самостоятельной работы:
1. Создать текстовый файл.

![](https://hackmd.io/_uploads/SJw4ERdO2.jpg)

2. Установить владельцем и группой владельцев суперпользователя root.

**sudo chown root:root fafa.txt**

![](https://hackmd.io/_uploads/Byj6ECOOh.jpg)

3. Запретить всем остальным доступ к файлу и проверить что доступ пропал.

![](https://hackmd.io/_uploads/rkCr8C_O2.jpg)

Или **chmod 700 fafa.txt**

4. Установить маску создания файлов так, чтобы у владельца были полные права, а у остальных никакого. Проверить работу маски.

![](https://hackmd.io/_uploads/BJpZwAd_n.jpg)

5. Создать папку и сделать владельцем суперпользователя.

![](https://hackmd.io/_uploads/S1_Dj0d_n.jpg)

6. Разрешить всем полный доступ к папке.

![](https://hackmd.io/_uploads/S1t2iRuO2.jpg)

7. Установить на папку sticky-бит, убедиться что никто кроме владельца не может изменить ее структуру.

![](https://hackmd.io/_uploads/SJmZARuu3.jpg)

## 6. Жесткие и символические ссылки
### Задание для самостоятельной работы:
1. Создать текстовый файл.

![](https://hackmd.io/_uploads/BJKlJktd2.jpg)

2. Создать копию этого файла, мягкую и жесткую ссылки на него.

![](https://hackmd.io/_uploads/BJgPM1YOn.jpg)

![](https://hackmd.io/_uploads/ryLufktdn.jpg)

![](https://hackmd.io/_uploads/S1xouGkKOh.jpg)

3. Перенести оригинал и внести в него изменения.

**mv gaga.txt papka/gaga.txt**

![](https://hackmd.io/_uploads/HyebEkFdh.jpg)

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

![](https://hackmd.io/_uploads/BycfB1YO2.jpg)

5. Перенести файл на другой (второй) раздел жесткого диска, убедиться в том, что жесткая ссылка перестала работать.

Перенес командой **mv** ссылка всё ещё работает
 
6. Создать на файл на новом (втором) разделе новую жесткую и мягкую ссылки.

**В ПРОЦЕССЕ**

7. Перенести ссылки на другой (первый) раздел и убедиться в том что мягкая ссылка работает, а жесткая сломалась.

**В ПРОЦЕССЕ**

## 7. Поиск и стандартное расположение системных файлов
### Задание для самостоятельной работы:

1. Расписать предназначение всех корневых папок вашего дистрибутива.

![](https://hackmd.io/_uploads/B1IwjJKuh.jpg)

В операционной системе Linux Ubuntu предназначение различных папок в директории корня следующее:

**/bin:** В этой папке находятся основные исполняемые файлы системы, такие как команды и утилиты, необходимые для базового функционирования системы даже в однопользовательском режиме.

**/boot:** Эта папка содержит файлы, связанные с загрузчиком системы, таким как ядро Linux, файлы конфигурации загрузчика и другие файлы, необходимые для загрузки операционной системы.

**/dev:** Здесь располагаются специальные файлы устройств (device files), представляющие различные устройства системы, включая жесткие диски, USB-устройства, терминалы, принтеры и другие.

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

**/home:** Эта папка содержит домашние каталоги пользователей. Каждый пользователь имеет свою собственную подпапку здесь для хранения своих персональных файлов, документов, конфигураций и т. д.

**/lib** и **/lib64:** Эти папки содержат разделяемые библиотеки (shared libraries), необходимые для работы программ в системе. /lib используется для 32-битных систем, а /lib64 - для 64-битных систем.

**/media **и **/mnt:** Эти папки используются для временного монтирования различных устройств или файловых систем. /media обычно содержит точки монтирования для съемных носителей, таких как USB-флешки, CD/DVD-диски, а /mnt может быть использован для временного монтирования других файловых систем или сетевых ресурсов.

**/opt:** В этой папке размещаются дополнительные программы или пакеты, которые не входят в стандартную установку системы. Обычно это коммерческие или сторонние программы.

**/root:** Домашний каталог суперпользователя root. Здесь хранятся файлы и конфигурации, принадлежащие администратору системы.

**/sbin:** Здесь находятся системные команды и утилиты, предназначенные для выполнения административных задач. Эти команды доступны только для пользователей с привилегиями суперпользователя (root).

**/tmp:** В этой папке располагаются временные файлы, которые создаются программами и процессами во время выполнения. Файлы в этой папке могут быть удалены при перезагрузке системы.

**/usr:** Это одна из основных папок, содержащая множество подпапок и файлов, связанных с установленными программами и ресурсами, доступными для общего использования. Здесь находятся библиотеки, заголовочные файлы, программы, документация и другие ресурсы.

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

2. Найти исполняемые файлы команды hostname.

![](https://hackmd.io/_uploads/Hya3hkKuh.jpg)

3. Найти мануал команды ifconfig.

**man ifconfig**

или **https://man7.org/linux/man-pages/man8/ifconfig.8.html**

4. Добавить в индексированные месторасположения каталог лог-файлов.

![](https://hackmd.io/_uploads/B1uJgeKO3.jpg)

![](https://hackmd.io/_uploads/HyDxglYO3.jpg)

![](https://hackmd.io/_uploads/S1pgeetd3.jpg)

![](https://hackmd.io/_uploads/Hk7-xltd3.jpg)

5. Проверить наличие псевдонимов у команды date.

В нашей системе не определены псевдонимы
Команда **alias** ничего не выдаёт

![](https://hackmd.io/_uploads/H1oLZxKO2.jpg)

### Новая ДЗ