
## Цель работы
- Научиться работать с Linux-системами
- Изучить настройки и конфигурационные файлы
- Научиться настраивать права доступа
- Научиться настраивать VLAN
## **Ход работы**
Установленный Debian:

### Конфигурационные файлы в Linux
**/etc/adjtime**
Настройка часового пояса. Настройка в третьей строке файла имеет значение «UTC» или «LOCAL» и определяет как система должна интерпретировать аппаратные часы — установлены ли они по UTC или показывают местное время.
/**etc/bash.bashrc**
Определяет поведение командной оболочки.
**/etc/crontab**
Таблица с расписанием запуска скриптов и программ, оформленная в специальном формате. Для каждого пользователя системы создается отдельный crontab-файл со своим расписанием.
**/etc/environment**
Этот файл для создания, редактирования и удаления каких-либо переменных окружения на системном уровне.
**/etc/fstab**
Текстовый файл, содержащий информацию о различных файловых системах и устройствах хранения информации в вашем компьютере.
**/etc/group**
Содержит имена групп, присутствующих в ОС, и списки членов каждой группы.
**/etc/hostname**
Хранит информацию о названии компьютера.
**/etc/hosts**
Файл, содержащий информацию о домене и IP-адресе, который ему соответствует.
**/etc/hosts.allow и /etc/hosts.deny**
Хранят имена программ и хостов с которых доступ к программе будет разрешен или запрещен.
**/etc/issue и /etc/issue.net**
Хранит информацию о выпуске ОС.
**/etc/ld.so.conf**
Представляет собой конфигурационные данные для сборщика-загрузчика. Он содержит список каталогов, в которых следует искать библиотеки.
**/etc/localtime**
Это символическая ссылка, которая указывает на текущий часовой пояс, используемый в системе.
**/etc/login.defs**
Содержит настройки подсистемы теневых паролей (shadow password suite).
**/etc/mime.types**
Содержит строки, отправляемые вместе с файлом, которые указывают тип файла.
**/etc/modprobe.d/**
Используется для добавления и удаления модулей из ядра *Linux.*
**/etc/modules-load.d/**
Эти файлы содержат список названий модулей ядра, которые необходимо загрузить.
**/etc/nsswitch.conf**
Файл настроек диспетчера службы имён.
**/etc/ntp.conf**
Служит для настройки NTP сервера.
**/etc/os-release**
Предоставляет информацию о дистрибутиве.
**/etc/passwd**
В файле хранятся логин пользователя, зашифрованный пароль, UID, GID по умолчанию, имя (иногда называемое GECOS), домашний каталог и оболочка входа (shell).
**/etc/profile**
Используется для задания элементов окружения оболочки пользователя.
**/etc/resolv.conf**
Основной файл настройки библиотеки распознавателя имен DNS.
**/etc/sddm.conf**
Это конфигурационный файл Linux для настройки менеджера входа sddm.
**/etc/shadow**
Это зашифрованный файл паролей, в котором хранится зашифрованная информация о паролях для учетных записей пользователей.
**/etc/sudoers**
Определяет какие пользователи могут запускать sudo команды, а также управляет особыми правилами, например, нужен ли пользователю пароль для определенных команд.
**/etc/sysctl.conf**
Позволяет просматривать и изменять параметры ядра Linux.
**/etc/vconsole.conf**
Задает кодировку, раскладку клавиатуры и шрифт по умолчанию для всех виртуальных консолей, запускаемых на машине.
**/etc/services**
Содержит информацию о многочисленных службах, которые клиентские приложения могут использовать на компьютере.
**/boot/grub/grub.cfg**
Здесь содержатся все настройки загрузчика, пункты меню и другие параметры.
**Включить пользователя в группу sudo**
sudo usermod -aG igorplatov

**Выделить место на VMware под новый HDD**

**Создание и монтирование 2 HDD**
После добавления двух новых дисков система их определила:

Создание новых разделов:


Форматирование разделов:

- Необходимо примонтировать первый диск как файловую систему только для чтения
- Примонтировать второй диск стандартно
Создать директории Data, bigData

Примонтировать первый HDD к вновь созданной директории bigData
Примонтировать второй HDD к вновь созданной директории Data


Примонтировать одну папку в другую, для этого используйте опцию --bind

Создать новую группу MIREA

Создать папку 23 в директории Data

Назначить на данную папку 23 группу MIREA

Создать нового пользователя:
- Назначить пароль
- Включить нового пользователя в группу MIREA
- Убедиться, что в домашнем каталоге создана директория с новым пользователем

Для безопасности после создания нового пользователя необходимо сделать файлы passwd и shadow нечитаемыми с помощью команды CHATTR

Назначить права доступа для нового пользователя, таким образом на директорию
`Data`, чтобы результат работы команды `ls` был отрицательным
Залогиниться новым пользователем, проверить работу 12 пункта, пояснить вывод команды `ls`

Новый пользователь student не смог открыть папку Data, потому что до этого на нее были поставлены права 700 (что означает rwx------ ).
**Проверить работу после перезапуска системы, что все настройки сохранились**
Для сохранения всех настроек отредактировали файл /etc/fstab выше
После перезагрузки системы примонтированные разделы остались:

bigData в Data
**Использование команды sudo в Linux**
Отображение списка команд, доступных для выполнения текущему
пользователю:

Настройки sudo:

**Stdin, Stdout и Stderr**
stdin:

stdout:

stderr:

tr:

**Установить SSH-сервер (сменить стандартный порт на любой другой)**
Проверка работы сервиса ssh:

Изменение порта в файле sshd_config

Запрет соединений от root:
PermitLoginRoot No
Подключение со второй системы по ssh:
Подключение с домашней ОС по ssh:

### Подключиться из основной операционной системы по SSH с помощью любого клиента, например PuTTY

### VLAN
Для настройки vlan изменим файл /etc/network/interfaces :

Проверка созданного интерфейса:




Проверка связности двух интерфейсов:

Проверка тегированного трафика:

### Полезные и опасные команды
**Опасные команды:**
`:(){ :|: & };:` fork-бомба
`"a command" > /dev/sda` прямая запись на жесткий диск
`dd if=/dev/urandom of=/dev/disk
//for i in {1..10}; do dd if=/dev/urandom of=/dev/disk` запись на диск случайных данных
`rm -rf /` **у**далить все
**Полезные команды:**
`cat ~/.bash_history | tr "\|\;" "\n" | sed -e "s/^ //g" | cut -d " " -f 1 | sort | uniq -c | sort -n | tail -n 10` определение самых используемых команд
`tr -c a-zA-Z '\n' < someFile.txt | sed '/^$/d' | sort | uniq -i -c` вывод из файла списка уникальных слов
`ps ajxf | awk '{ if($2 == $4) { if ($1 == 1) { print "\033[35m" $0"\033[0m"} else print "\033[1;32m" $0"\033[0m" } else print $0 }’` выделение цветом вывода ps
`!cp:p` поиск последней команды, начинающейся с “xxx”, без ее выполнения
`for i in {1..10}; do command; done` выполнение команды N раз
`while sleep 1;do tput sc;tput cup 0 $(($(tput cols)-29));date;tput rc;done &` добавление часов в терминал
`find -not -empty -type f -printf "%s
" | sort -rn | uniq -d | xargs -I{} -n1 find -type f -size {}c -print0 | xargs -0 md5sum | sort | uniq -w32 --all-repeated=separate` поиск повторяющихся файлов ****
`rm !(*.xls|*.slsx|*.csv)` удаление всех файлов каталога, не соответствующих заданному расширению
`rm -f !(theFile.txt)` удалить все файлы, кроме одного
`date +%s | sha256sum | base64 | head -c 8; echo` генерация случайного пароля заданной длины
`find . -type d -empty -delete` рекурсивное удаление всех пустых каталогов
`chmod --reference file2 file1` копирование разрешений файла
## Вывод:
Я научился работать с Linux-системами, настраивать права доступа, настраивать VLAN, изучил настройки и конфигурационные файлы.