![](https://hackmd.io/_uploads/HJlO1cwPbp.png) ## Цель работы - Научиться работать с Linux-системами - Изучить настройки и конфигурационные файлы - Научиться настраивать права доступа - Научиться настраивать VLAN ## **Ход работы** Установленный Debian: ![](https://hackmd.io/_uploads/ByVHqwwWa.png) ### Конфигурационные файлы в 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 ![](https://hackmd.io/_uploads/B11PVtCWT.png) **Выделить место на VMware под новый HDD** ![](https://hackmd.io/_uploads/SkcyHKRbT.png) **Создание и монтирование 2 HDD** После добавления двух новых дисков система их определила: ![](https://hackmd.io/_uploads/By6LrF0ZT.png) Создание новых разделов: ![](https://hackmd.io/_uploads/B1EkCwDWp.png) ![](https://hackmd.io/_uploads/SytIIF0ba.png) Форматирование разделов: ![](https://hackmd.io/_uploads/SkG2LKAbp.png) - Необходимо примонтировать первый диск как файловую систему только для чтения - Примонтировать второй диск стандартно Создать директории Data, bigData ![](https://hackmd.io/_uploads/B1oWPt0ZT.png) Примонтировать первый HDD к вновь созданной директории bigData Примонтировать второй HDD к вновь созданной директории Data ![](https://hackmd.io/_uploads/BJF8vYC-6.png) ![](https://hackmd.io/_uploads/rkfScYCWT.png) Примонтировать одну папку в другую, для этого используйте опцию --bind ![](https://hackmd.io/_uploads/HJCKwtA-T.png) Создать новую группу MIREA ![](https://hackmd.io/_uploads/rJuhPtCZp.png) Создать папку 23 в директории Data ![](https://hackmd.io/_uploads/By5ysFR-6.png) Назначить на данную папку 23 группу MIREA ![](https://hackmd.io/_uploads/HyrMjKAbT.png) Создать нового пользователя: - Назначить пароль - Включить нового пользователя в группу MIREA - Убедиться, что в домашнем каталоге создана директория с новым пользователем ![](https://hackmd.io/_uploads/SkkYjKAZ6.png) Для безопасности после создания нового пользователя необходимо сделать файлы passwd и shadow нечитаемыми с помощью команды CHATTR ![](https://hackmd.io/_uploads/SJ5ajtRZT.png) Назначить права доступа для нового пользователя, таким образом на директорию `Data`, чтобы результат работы команды `ls` был отрицательным Залогиниться новым пользователем, проверить работу 12 пункта, пояснить вывод команды `ls` ![](https://hackmd.io/_uploads/BJ0ehK0bp.png) Новый пользователь student не смог открыть папку Data, потому что до этого на нее были поставлены права 700 (что означает rwx------ ). **Проверить работу после перезапуска системы, что все настройки сохранились** Для сохранения всех настроек отредактировали файл /etc/fstab выше После перезагрузки системы примонтированные разделы остались: ![](https://hackmd.io/_uploads/HJwr3FC-T.png) bigData в Data **Использование команды sudo в Linux** Отображение списка команд, доступных для выполнения текущему пользователю: ![](https://hackmd.io/_uploads/B1lZpY0Wa.png) Настройки sudo: ![](https://hackmd.io/_uploads/rkR5RKAZp.png) **Stdin, Stdout и Stderr** stdin: ![](https://hackmd.io/_uploads/SygO1qA-T.png) stdout: ![](https://hackmd.io/_uploads/S1HF150ZT.png) stderr: ![](https://hackmd.io/_uploads/Hyih1cC-6.png) tr: ![](https://hackmd.io/_uploads/BysCJqAWp.png) **Установить SSH-сервер (сменить стандартный порт на любой другой)** Проверка работы сервиса ssh: ![](https://hackmd.io/_uploads/ByFSK5R-p.png) Изменение порта в файле sshd_config ![](https://hackmd.io/_uploads/BJjAY9AZp.png) Запрет соединений от root: PermitLoginRoot No Подключение со второй системы по ssh: Подключение с домашней ОС по ssh: ![](https://hackmd.io/_uploads/r18VesA-6.png) ### Подключиться из основной операционной системы по SSH с помощью любого клиента, например PuTTY ![](https://hackmd.io/_uploads/rkH--s0bT.png) ### VLAN Для настройки vlan изменим файл /etc/network/interfaces : ![](https://hackmd.io/_uploads/ryyGji0-a.png) Проверка созданного интерфейса: ![](https://hackmd.io/_uploads/SkiD4iRZ6.png) ![](https://hackmd.io/_uploads/rkVhcoRZ6.png) ![](https://hackmd.io/_uploads/B1W22i0-T.png) ![](https://hackmd.io/_uploads/H1Xp2s0Za.png) Проверка связности двух интерфейсов: ![](https://hackmd.io/_uploads/rJZlajC-T.png) Проверка тегированного трафика: ![](https://hackmd.io/_uploads/BkbZ0o0WT.png) ### Полезные и опасные команды **Опасные команды:** `:(){ :|: & };:` 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, изучил настройки и конфигурационные файлы.