From e8963fc66a8741d8e6c118c7cca860c6a608d75d Mon Sep 17 00:00:00 2001 From: kilka Date: Thu, 30 Oct 2025 20:24:41 +0400 Subject: [PATCH 01/15] Create foo.md --- admin/foo.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 admin/foo.md diff --git a/admin/foo.md b/admin/foo.md new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/admin/foo.md @@ -0,0 +1 @@ + From d3b6516b607f0cd050ed501bbfd1f74ed0e70b9b Mon Sep 17 00:00:00 2001 From: kilka Date: Thu, 30 Oct 2025 21:38:13 +0400 Subject: [PATCH 02/15] Add files via upload --- admin/lab1.md | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 admin/lab1.md diff --git a/admin/lab1.md b/admin/lab1.md new file mode 100644 index 0000000..1b7278d --- /dev/null +++ b/admin/lab1.md @@ -0,0 +1,76 @@ +Task 1 +Работа в консольке +1. Переместиться между директориями: +cd /name/name1 - перемещение по полному пути +cd name_dir - переместиться в папку в текущей директории +cd .. - переместиться на уровень выше +cd ~ - переместиться в домашнюю директорию +cd - вернуться в пердыдущую директорию + +2. Вывести список файлов в директории: +ls +ls -l - детальный список с правами, датами + +3. Вывести список всех файлов в директории: +ls -a - показать все файлы, вкдючая скрытые + +4. Создать папку с подпапками: +mkdir -p dir1/dir2/dir3 + +5. Внутри папки создать файлик и записать в него что-нибудь: +echo "Hello, world" > dir3/main.txt + +6. Переместить файл из одной директории в другую: +mv home/admin/dir1/dir2/dir3/main.txt /home/admin/ + +7. скопировать файл из одной директории в другую: +cp dir3/main.txt /home/admin/ + +8. переименовать файл: +mv dir3/main.txt dir3/renamed.txt + +9. сравнить содержимое файла: +diff dir3/renamed.txt /home/admin/main.txt + +10. отсортировать содержимое файла по возрастанию и убыванию: +sort dir1/dir2/dir3/renamed.txt - по возрастанию +sort -r dir1/dir2/dir3/remaned.txt - по убыванию + +11. удалить все папки и файлы: +– rm -rf dir1 + +Task 2 +Перенаправляем +1. Как работают команды >,>>? +- > — создает файл или перезаписывает существующий +Например: echo "First line" > main.txt - файл main.txt содержит строку "First line" + +- >> — создает файл или добавляет в конец существующего +Например: echo "Second line" >> main.txt - файл содержит две строки + +2. Что такое перенаправление ввода? stderr,stdout; +- stdout - стандартный поток вывода, по умолчанию терминал +- stderr - стардартный потом ошибок, по умолчсанию терминал + +3. Вывести содержание файла не используя текстовые редакторы; +- cat main.txt + +4. Создать файл с содержимым не используя текстовые редактор; +- echo "Third line" > main.txt + +5. перенаправить stdout в stderr и обратно на примере команды kinit, ping, tracert +kinit user 2> errors.txt # Перенаправляем stderr в файл +ping example.com > output.txt 2>&1 # Перенаправляем stdout и stderr в один файл (output.txt) + +6. чем отличаются stdout и stderr +- stdout используется для обычного вывода программы (результаты выполнения) +- stderr используется для вывода сообщений об ошибках и предупреждениях + +7. что такое stdin? +stdin - стандартный поток ввода, по умолчанию клавиатура + +8. как отправить весь вывод команды в пустоту? +- команда > /dev/null + +9. можно ли отправить одновременно stdin и stdout в пустоту? +Да, можно. Для этого нужно перенаправить поток вывода в файл /dev/null \ No newline at end of file From 5f06b693d5f75e86a4206c03d4f8148e424c3416 Mon Sep 17 00:00:00 2001 From: kilka Date: Thu, 30 Oct 2025 21:39:08 +0400 Subject: [PATCH 03/15] Delete admin/foo.md --- admin/foo.md | 1 - 1 file changed, 1 deletion(-) delete mode 100644 admin/foo.md diff --git a/admin/foo.md b/admin/foo.md deleted file mode 100644 index 8b13789..0000000 --- a/admin/foo.md +++ /dev/null @@ -1 +0,0 @@ - From 9b6cb4b090b864437ee8ab0ad20c996ce0e26877 Mon Sep 17 00:00:00 2001 From: kilka Date: Thu, 30 Oct 2025 22:53:15 +0400 Subject: [PATCH 04/15] Add files via upload --- admin/lab2.md | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 admin/lab2.md diff --git a/admin/lab2.md b/admin/lab2.md new file mode 100644 index 0000000..2464b4a --- /dev/null +++ b/admin/lab2.md @@ -0,0 +1,56 @@ +Task 1 +Управление пользователями +1. Добавьте пользователей user1 и user2: +1.1) user1 - оболочка bash: +sudo useradd -m -s /bin/bash user1 (-m - создание домашней директории для пользователя, -s /bin/bash: для user1 будет использована оболочка bash) + +1.2) user2 - оболочка sh: +sudo useradd -m -s /bin/sh user2 + +1.3) установите им пароли: +(1.1)sudo passwd user1; +(1.2)sudo passwd user2 + +2. Назначьте пользователю 1 группу администраторов, пользователя 2 добавьте в группу пользователя 1 +2.1) sudo usermod -aG sudo user1 (добавляем пользователя 1 в группу администраторов) + +2.2) sudo usermod -aG user1 user2 (добавляем пользователя 2 в группу пользователя 1) + +3. Что такое права доступа? Выведите права доступа на файлы в директории пользователя +Чтение (r) – возможность просматривать содержимое файла или список файлов в директории +Запись (w) – возможность изменять файл или добавлять файлы в директорию +Исполнение (x) – возможность исполнять файл или заходить в директорию +ls -l – для вывода прав доступа на файлы в текущей директории + +4. Как изменить права на файлы? Создайте файл который будет на который у всех пользователей будут все возможные права +chmod 777 /home/user1/main.txt + +5. Как называется учётная запись встроенного администратора в linux? +root - суперпользователь с полными правами в системе + +6. Как выполнить команду от имени администратора? +sudo + +7. Есть ли ограничения у суперпользователя? +Суперпользователь root обладает максимальными правами и доступом к системе. Но у root существуют ограничения на уровне системы, например, запреты на операции, которые могут привести к поломке системы. + +8. Удалите пользователя 2 с помощью пользователя 1: +sudo -u user1 sudo userdel -r user2 + +9. Как можно изменить владельца папки? измените владельца папки из пункта 4. – sudo chown user2:user2 /home/user1/test_all_access.txt + +Task 2 +Запрещаем +1. Запретите пользователю user1 из предыдщуего задания выполнять вход в систему +sudo usermod -L -s /sbin/nologin user1 - блокируем пароль и меняем оболочку на noLogin + +2. Как вы это сделали? +Можно сделать поэтапно: +sudo usermod -L user1 - блокировка пароля +sudo usermod -s /sbin/nologin user1 - меняем оболочку на noLogin + +3. Какие ещё способы это сделать вы знаете? +sudo chage -E 0 user1 - истечение срока пароля + +4. Можно ли создать пользователей с одинаковыми username? +Нет, так как username должен быть уникальным From 67a4e7834e5dbf8f76b3f646f520268421cf508c Mon Sep 17 00:00:00 2001 From: kilka Date: Thu, 30 Oct 2025 23:55:21 +0400 Subject: [PATCH 05/15] Add Lab3 --- admin/lab3.md | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 admin/lab3.md diff --git a/admin/lab3.md b/admin/lab3.md new file mode 100644 index 0000000..55194bd --- /dev/null +++ b/admin/lab3.md @@ -0,0 +1,114 @@ +Task 1 +ФС +1. Какие файловые системы вы знаете? +Windows: NTFS, FAT12, FAT16, FAT32, eXFAT, ReFS +Linux: ext2, ext3, ext4, JFS, XFS, ReiserFS, Btrfs, ZFS +macOS: HFS+, APFS + +2. Как можно классифиировать файловые системы? в чём отличия?? +По назначению: +Для носителей с произвольным доступом (NTFS, FAT32, ext2) +Для носителей с последовательным доступом (QIC) +Для оптических носителей(ISO9660, UDF, HFS) +Виртуальные ФС (AEFS) +Для флэш-памяти (YAFFS, exFAT) +VMware VMFS - кластерная ФС для хранения других ФС + +По структуре: +Журналируемые (ext4, XFS, NTFS) - ведется журнал, хранящий список изменений +Нежурналируемые (ext2, FAT32) - без журнала + +3. Какие файловые системы используются в linux? +ext2, ext3, ext4, JFS, XFS, ReiserFS, Btrfs, ZFS + +4. Как можно создать файловую систему на диске? +sudo mkfs -t ext4 /dev/sdb1 - создание ФС на разделе /dev/sdb1 + +5. Как можно подключить диск в систему, что такое монтирование? +Монтирование - процесс подключения файловой системы к определенной точке в дереве каталогов +sudo mount /dev/sdb1 /mnt/mydisk + +6. файловая система procfs, cifs, tmpfs, sysfs. В чём особенности каждой из них? Вывести каталоги к которым примонтированы эти файловые системы. +procfs, cifs, tmpfs, sysfs относятся к специальным файловым системам. +procfs(/proc) - все процессы хранятся в виде файлов +tmpfs(/tmp) - все процессы хранятся в оперативной памяти +sysfs(/sys) - предоставляет информацию об устройствах, драйверах и ядре +cifs(могут быть разные каталоги) - обмен файлами по сети + +7. Как можно получить информацию о системе используя лишь команду cat? вывести информацию о процессоре и состоянии памяти системы +cat /proc/cpuinfo - полная информация о процессоре +cat /proc/meminfo - полная информация о памяти + +Task 2 +Струтура каталогов +1. Какая структура каталогов в linux? выведите список файлов в корне системы +/ - корневая директория +/bin - основные пользовательские двоичные файлы +/boot - статические загрузочные файлы +/dev - файлы устройства +/etc - файлы конфигурации +/home - домашние папки +/lib - основные общие библиотеки +/lost+found - восстановленные файлы +/media - съемный носитель +/mnt - временные точки монтирования +/opt - дополнительное пакеты +/proc - файлы ядра и процессов +/root - корневой домашний каталог +/run - файлы состояния приложения +/sbin - двоичные файлы системного администрирования +/srv - сервисные файлы +/tmp - временные файлы +/usr - пользовательские двоичные файлы и данные только для чтения +/var - файлы временных данных + +2. Где хранятся папки пользователей в системе? +Папки пользователей в системе хранятся в директории /home + +3. Где домашняя папка суперпользователя? +Домашняя папка суперпользователя находится в каталоге /root + +4. Где хранятся основые конфигурационные файлы в системе? +Основные конфигурационные файлы в системе хранятся в папке /etc + +5. Что за папки /bin,/sbin,usr/bin,/usr/sbin +Папка /bin содержит бинарные файлы пользователя (исполняемые программы). Здесь расположены утилиты, которые можно использовать в однопользовательском режиме или режиме восстановления. Например, это такие общие команды, как cat, ls, tail, ps и другие. + +Папка /sbin содержит системные исполняемые файлы. Как и в случае с /bin, здесь есть исполняемые файлы, доступные на ранних этапах загрузки. Но в отличие от /bin, в этой папке находятся программы, которые можно выполнять только с правами суперпользователя. Это разные утилиты для обслуживания системы. Примеры: iptables, reboot, fdisk, ifconfig, swapon и другие. + +Папка /usr/bin содержит исполняемые файлы различных программ, которые не нужны на первых этапах загрузки системы. К примеру, это музыкальные плееры, графические редакторы, браузеры и так далее. + +Папка /usr/sbin содержит бинарные файлы программ, предназначенных для системного администрирования. Такие программы нужно выполнять с правами суперпользователя. Примеры: Gparted, sshd, useradd, userdel и другие + +Task 3 +Продолжаем +1. Выведите содержимое fstab. Что хранится в fstab? +В файле fstab (File System Table) хранится информация о различных файловых системах и устройствах хранения информации в операционной системе. Это текстовый файл, который определяет, как диск (раздел) будет использоваться или как будет интегрирован в систему. + +2. Добавьте в виртуальную машину ещё один диск +3. Узнайте как ситема видит ваш диск - выведите информацию о блочных устройствах +4. С помощью полученной информации создайте на диске таблицу разделов и фаловую систему ext4 +5. Примонитруте диск в каталог /mnt +6. Зайдите в каталог и создайте там файлы +7. Отмонтируйте диск и проверье остались ли файлы +8. Сделайте так чтобы диск автоматически подключался при загрузке систем ( добавьте информацию о нём с fstab) +9. Проверьте корретность записанных в fstab данных перед перезагрузкой +10. Перезагрущите систему и убедитесь что диск был подключён к системе + +Task 4 +Продолжаем +1. Raid массивы, что такое и какие бывают +RAID (Redundant Array of Independent Disks) - технология объединения дисков. +Основные типы: +RAID 0 (striping) - скорость, без избыточности +RAID 1 (mirroring) - зеркалирование, надежность +RAID 5 - чередование с контролем четности +RAID 10 - комбинация RAID 1+0 + +2. Добавьте в виртуальную машину 2 диска отформатируйте их в ext4 +3. Создайте из них raid 0 массив +4. Проверье всё ли работает +5. Удалите raid0 и создайте raid1 +6. В чём между ними разница? +7. Есть ли файловые системы которые поддерживают raid массивы без стороненго ПО +8. Можно ли создать raid массив во время установки системы? From 3450b9d01a8d9f1460bcf71d87ab1d1bb4b1d038 Mon Sep 17 00:00:00 2001 From: kilka Date: Mon, 10 Nov 2025 10:39:30 +0400 Subject: [PATCH 06/15] add Lab4 --- admin/lab4.md | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 admin/lab4.md diff --git a/admin/lab4.md b/admin/lab4.md new file mode 100644 index 0000000..6e69d14 --- /dev/null +++ b/admin/lab4.md @@ -0,0 +1,79 @@ +Task 1 +Скриптуем по полной +1. Что такое шебанг? +Шебанг - последовательность из символов решётки и восклицательного знака ("#!") в начале файла скрипта. Указывает системе, каким интерпретатором выполнять файл. + +2. Обязательно ли исполняемый файл дожен иметь соотвествующее расширение? +Нет, не обязательно.сВ Linux расширения файлов не определяют их исполняемость. Важны бит исполнения, шебанг, права доступа. + +3. Напишите скрипт который выполнит автоматически действия из блока работы с файлами. ( не забудьте включить set -euo pipefail для того что бы ваш скрипт было удобнее отлаживать. Опишите что включают эти флаги) +#!/bin/bash + +# Безопасные настройки скрипта +set -euo pipefail + +# Описание флагов: +# set -e - остановка скрипта при любой ошибке +# set -u - ошибка при использовании необъявленных переменных +# set -o pipefail - возвращает код ошибки пайплайна, если хоть одна команда пайпа упала + +# Создание рабочей директории +WORK_DIR="/tmp/file_operations_$(date +%s)" +mkdir -p "$WORK_DIR" +cd "$WORK_DIR" + +# 1. Папка с подпапками +mkdir -p project/{src,doc,bin,backup} + +# 2. Внутри папки создаем файл и записываем в него данные +echo "Hello, World!" > project/src/main.txt +echo "Тестовые данные" > project/doc/readme.txt + +# 3. Проверяем созданные файлы +ls -la project/src/ +ls -la project/doc/ + +# 4. Перемещаем файл из одной директории в другую +mv project/src/main.txt project/backup/ + +# 5. Копируем файл из одной директории в другую +cp project/doc/readme.txt project/bin/readme_copy.txt + +# 6. Переименовываем файл +mv project/bin/readme_copy.txt project/bin/renamed_file.txt + +# 7. Создаем файлы для сравнения +echo "File A content" > file_a.txt +echo "File B content" > file_b.txt +echo "File A content" > file_c.txt + +# 8. Сравниваем содержимое файлов +echo "Сравнение file_a.txt и file_b.txt:" +if diff file_a.txt file_b.txt; then + echo "Файлы идентичны" +else + echo "Файлы различаются" +fi + +# 9. Создаем файл для сортировки +echo -e "banana\napple\ncherry\napple\norange" > fruits.txt + +# 10. Сортируем содержимое файла по возрастанию и убыванию +echo "По возрастанию:" +sort fruits.txt > sorted_asc.txt +cat sorted_asc.txt + +echo "По убыванию:" +sort -r fruits.txt > sorted_desc.txt +cat sorted_desc.txt + +# 11. Создаем файл со всеми возможными правами +echo "Файл с полными правами" > all_access.txt +chmod 777 all_access.txt +ls -la all_access.txt + +# 12. Показываем итоговую структуру +find . -type f -exec ls -la {} \; | head -20 + +# 13. Очистка +rm -rf "$WORK_DIR" From 5624469c2de90f8fbb588da756da27cc39b8826b Mon Sep 17 00:00:00 2001 From: kilka Date: Mon, 10 Nov 2025 10:52:33 +0400 Subject: [PATCH 07/15] Add Lab5 --- admin/lab5.md | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 admin/lab5.md diff --git a/admin/lab5.md b/admin/lab5.md new file mode 100644 index 0000000..4469283 --- /dev/null +++ b/admin/lab5.md @@ -0,0 +1,124 @@ +Task 1 +Юниты +1. Что такое systemd юнит? +Systemd юнит - это конфигурационный файл, который описывает как systemd должен управлять службой, сокетом, устройством, точкой монтирования и другими системными объектами. + +Основные типы юнитов: +service - системные службы и демоны +socket - сокеты для активации по требованию +timer - планировщик задач (замена cron) +mount - точки монтирования +target - группы юнитов (аналог runlevels) + +2. Проверье статус любого systemd юнита, какую информацию выводит эта команда? +systemctl status ssh или +systemctl status ssh.service + +3. ПОпробуйте оставновить сервис. +sudo systemctl stop ssh + +4. Перезапустите его. +sudo systemctl restart ssh + +5. УДалите из автозагрузки +sudo systemctl disable ssh + +6. Верните обратно +sudo systemctl enable ssh + +7. Что такое таймеры? +Таймеры - это systemd юниты для планирования выполнения задач (аналог cron). Они могут запускать service юниты по расписанию. + +Task 2 +Пишем юниты +1. Создайте скрипт который создаёт папку заполняет её файлами ( имена 1-4 ) и записывает в них информацию о текущей дате, версии ядра, имени компьютера и списе всех файлов в домашнем каталоге пользователя от которого выполняется скрипт( не забудьте сдлеать проверку на существование файлов и папок) +#!/bin/bash +set -euo pipefail + +cd ~ + +mkdir -p system_info_data + +for i in 1 2 3 4; do + cat > "system_info_data/file$i.txt" << EOF +Дата: $(date) +Ядро: $(uname -r) +Компьютер: $(hostname) +Пользователь: $(whoami) + +Домашняя папка: +$(ls -la ~) +EOF +done + +2. Создайте юнит, который будет вызывать этот скрипт при запуске. Проверьте +[Unit] +Description=System Info Collector + +[Service] +Type=oneshot +ExecStart=/usr/local/bin/system_info_collector.sh +User=root + +[Install] +WantedBy=multi-user.target + +3. Создайте таймер который будет вызывать выполнение одноимённого systemd юнита каждые 5 минут. +[Unit] +Description=Run every 5 minutes + +[Timer] +OnBootSec=1min +OnUnitActiveSec=5min + +[Install] +WantedBy=timers.target + +4. От какого пользователя вызыаются юниты по умолчанию? +По умолчанию от root'а + +5. Создайте пользователя, от имени которого будет выполняться ваш скрипт. +sudo useradd -m systemuser + +6. Дополните юнит информацией о пользователе, от которого должен выполняться скрипт. +[Unit] +Description=System Info Collector + +[Service] +Type=oneshot +ExecStart=/usr/local/bin/system_info_collector.sh +User=systemuser + +[Install] +WantedBy=multi-user.target + +7. Дополните ваш скрипт так, чтобы он независимо от местоположения всегда выполнялся в домашней папке того, кто его вызывает. +cd ~ # Выполняется из домашней директории. +... + +Task 3 +Журнальчики +1. Посмотретите журналы ssh +sudo journalctl -u ssh +sudo journalctl -u ssh.service + +2. Выведите журналы в реальном времени +sudo journalctl -f + +3. Выведите лог в реальном времени для службы sshd +sudo journalctl -u ssh -f + +4. Можно ли без комады journalctl прочитать логи systemd? +Да, можно несколькими способами: +# 1. Через системные файлы +sudo cat /var/log/syslog | grep ssh +# 2. Через службу rsyslog +sudo cat /var/log/auth.log | grep ssh +# 3. Через демона службы (если ведет собственный лог) +sudo cat /var/log/ssh/* +# 4. Просмотр бинарных журналов напрямую +sudo strings /var/log/journal/*/system.journal | grep ssh + +5. Сколько будет 2-2? +echo $((2 - 2)) +# Результат: 0 \ No newline at end of file From ffb8f59b9a26d81ca7fb2c50dc4efb5bfc22de2a Mon Sep 17 00:00:00 2001 From: kilka Date: Mon, 10 Nov 2025 14:28:34 +0400 Subject: [PATCH 08/15] Add Lab.Network --- admin/network.md | 64 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 admin/network.md diff --git a/admin/network.md b/admin/network.md new file mode 100644 index 0000000..d6d6205 --- /dev/null +++ b/admin/network.md @@ -0,0 +1,64 @@ +сети +1. Выведите список интерфейсов, какими способами можно это сделать? +ip link show +ip addr show +ifconfig +netstat -i + +2. Попробуйте изменить ip адрес +sudo ip addr add 192.168.1.100/24 dev eth0 + +3. Попробуте добавить несколько ip адресов на сетевую карту +sudo ip addr add 192.168.1.101/24 dev eth0 +sudo ip addr add 192.168.1.102/24 dev eth0 + +4. Выведите список маршрутов +ip route show +route -n + +5. Выведите arp таблицу +arp -a +ip neighbor show + +6. Что такое ip адрес? +IP-адрес - это уникальный числовой идентификатор устройства в компьютерной сети, использующей протокол IP. + +7. Для чего нужны маршруты? +Маршруты определяют путь, по которому сетевые пакеты должны следовать от источника к получателю в межсетевом пространстве. + +8. Что за протокол arp? +ARP (Address Resolution Protocol) - протокол для определения MAC-адреса по известному IP-адресу в локальной сети. + +9. Что такое dhcp? +DHCP (Dynamic Host Configuration Protocol) — сетевой протокол, который автоматически назначает IP-адреса и другие сетевые параметры устройствам в сети. + +10. Что такое dns? +DNS (Domain Name System) — система доменных имён. Она преобразует понятные человеку имена сайтов в цифровые IP-адреса, необходимые компьютерам для соединения в сети. Это позволяет пользователям вводить запоминающиеся имена вместо сложных числовых адресов. + +11. Как называется один из протоколов синхронизации времени? +NTP (Network Time Protocol) — один из протоколов синхронизации времени. + +12. Что такое широковещательный запрос, зачем он нужен? +Широковещательный звпрос - это запрос, который предназначен для получения всеми компьютерами сети. Для этого запрос посылается на специальный IP или MAC-адрес + +13. Какой адресс является широковещательным? +Широковещательный адрес в IP-сетях — это специальный адрес, который используется для отправки сообщений всем устройствам в сети. +Пример: если адрес подсети равен 192.168.0.0, маска подсети — 255.255.255.0, то широковещательный адрес — 192.168.0.255 + +14. Какие ещё параметры можно задать сетевой карте? +MTU (Maximum Transmission Unit) - максимальный размер пакета. Определяет максимальный размер данных в одном сетевом пакете +sudo ip link set eth0 mtu 1500 + +Включение/выключение интерфейса. Активирует или деактивирует сетевую карту. Аналогично физическому подключению/отключению кабеля. +sudo ip link set eth0 up +sudo ip link set eth0 down + +Изменение MAC-адреса. MAC-адрес - это уникальный физический идентификатор сетевого устройства. Можно временно изменить. +sudo ip link set eth0 address 00:11:22:33:44:55 + +Просмотр текущих настроек. Первая команда показывает основные параметры, вторая - детальную информацию о сетевой карте. +ip link show eth0 +ethtool eth0 + +15. Что такое маска подсети? зачем она нужна? +Маска подсети определяет, какая часть IP-адреса относится к сети, а какая - к хосту. Нужна для разделения сети на подсети и маршрутизации. From 037f781d951a6f7efcb11011d30bb3c990c1d03b Mon Sep 17 00:00:00 2001 From: kilka Date: Mon, 10 Nov 2025 21:57:50 +0400 Subject: [PATCH 09/15] Updated Lab3 --- admin/lab3.md | 93 ++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 85 insertions(+), 8 deletions(-) diff --git a/admin/lab3.md b/admin/lab3.md index 55194bd..4b1fd26 100644 --- a/admin/lab3.md +++ b/admin/lab3.md @@ -22,11 +22,13 @@ VMware VMFS - кластерная ФС для хранения других Ф ext2, ext3, ext4, JFS, XFS, ReiserFS, Btrfs, ZFS 4. Как можно создать файловую систему на диске? -sudo mkfs -t ext4 /dev/sdb1 - создание ФС на разделе /dev/sdb1 +su - +mkfs -t ext4 /dev/sdb1 - создание ФС на разделе /dev/sdb1 5. Как можно подключить диск в систему, что такое монтирование? Монтирование - процесс подключения файловой системы к определенной точке в дереве каталогов -sudo mount /dev/sdb1 /mnt/mydisk +su - +mount /dev/sdb1 /mnt/mydisk 6. файловая система procfs, cifs, tmpfs, sysfs. В чём особенности каждой из них? Вывести каталоги к которым примонтированы эти файловые системы. procfs, cifs, tmpfs, sysfs относятся к специальным файловым системам. @@ -83,32 +85,107 @@ Task 2 Task 3 Продолжаем 1. Выведите содержимое fstab. Что хранится в fstab? +cat /etc/fstab В файле fstab (File System Table) хранится информация о различных файловых системах и устройствах хранения информации в операционной системе. Это текстовый файл, который определяет, как диск (раздел) будет использоваться или как будет интегрирован в систему. 2. Добавьте в виртуальную машину ещё один диск +Настройки VM -> Носители -> Контроллер SATA -> Добавить жесткий диск -> Создать новый + 3. Узнайте как ситема видит ваш диск - выведите информацию о блочных устройствах +lsblk + 4. С помощью полученной информации создайте на диске таблицу разделов и фаловую систему ext4 +su - +fdisk /dev/sda +# n → p → 1 → Enter → Enter → w +mkfs.ext4 /dev/sda1 + 5. Примонитруте диск в каталог /mnt +su - +mkdir /mnt/mydisk +mount /dev/sda1 /mnt/mydisk + 6. Зайдите в каталог и создайте там файлы +su - +cd /mnt/mydisk +touch file1.txt file2.txt +echo "test" > file1.txt + 7. Отмонтируйте диск и проверье остались ли файлы -8. Сделайте так чтобы диск автоматически подключался при загрузке систем ( добавьте информацию о нём с fstab) +su - +cd / +umount /mnt/mydisk +ls /mnt/mydisk/ # Файлов не видно + +8. Сделайте так чтобы диск автоматически подключался при загрузке систем (добавьте информацию о нём с fstab) +su - +blkid /dev/sda1 # Копируем UUID +nano /etc/fstab +# Открывается файл, идем в последнюю строку и записываем: +UUID=66c44db3-12ac-437b-a36c-8dd1a0986eae /mnt/ext4 defaults 0 2 + 9. Проверьте корретность записанных в fstab данных перед перезагрузкой +mount -a +su - +ls /mnt/mydisk/ # Файлы снова видны + 10. Перезагрущите систему и убедитесь что диск был подключён к системе +su - +reboot +# После перезагрузки: +ls /mnt/mydisk/ # Файлы должны быть на месте Task 4 Продолжаем 1. Raid массивы, что такое и какие бывают RAID (Redundant Array of Independent Disks) - технология объединения дисков. Основные типы: -RAID 0 (striping) - скорость, без избыточности -RAID 1 (mirroring) - зеркалирование, надежность -RAID 5 - чередование с контролем четности -RAID 10 - комбинация RAID 1+0 +RAID 0 (Stripping): +Преимущества: Максимальная скорость (данные разбиваются на блоки) +Недостатки: Нет избыточности, отказ одного диска = потеря всех данных +Минимально дисков: 2 +RAID 1 (Mirroring): +Преимущества: Высокая надежность (данные дублируются) +Недостатки: Эффективный объем = объему одного диска +Минимально дисков: 2 +RAID 10: +Преимущества: Высокая скорость + надежность +Недостатки: Требует минимум 4 диска +Особенности: Комбинация RAID 1 и RAID 0 2. Добавьте в виртуальную машину 2 диска отформатируйте их в ext4 +mkfs.ext4 /dev/sdb +mkfs.ext4 /dev/sdc + 3. Создайте из них raid 0 массив +mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb /dev/sdc + 4. Проверье всё ли работает +cat /proc/mdstat + 5. Удалите raid0 и создайте raid1 +mdadm --stop /dev/md0 +mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdb /dev/sdc + 6. В чём между ними разница? -7. Есть ли файловые системы которые поддерживают raid массивы без стороненго ПО +По надежности: +RAID 0 абсолютно ненадежен - вышел из строя один диск, и все данные потеряны. +RAID 1 очень надежен - система переживает отказ одного диска без потери данных. + +По эффективности использования дискового пространства: +В RAID 0 вы получаете 100% доступного пространства от суммы всех дисков. +В RAID 1 вы получаете только 50% (при двух дисках) - половина уходит на дублирование. + +По производительности: +RAID 0 быстрее для операций чтения и записи, так как нагрузка распределяется. +RAID 1 быстрее только для операций чтения, а запись может быть медленнее. + +7. Есть ли файловые системы которые поддерживают raid массивы без стороненго ПО? +Да, есть. Файловые системы Btrfs и ZFS имеют встроенную поддержку RAID на уровне самой файловой системы. + +BtrFS интегрирует программный RAID в свой состав. Поддерживает различные типы RAID-массиво. + +ZFS реализует собственный вариант RAID — RAID-Z. Данные и контрольные суммы распределяются по нескольким дискам внутри одного виртуального устройства (Vdev). Позволяет сохранять данные даже при выходе из строя одного, двух или трёх дисков, в зависимости от выбранного уровня. + 8. Можно ли создать raid массив во время установки системы? +Да, создать RAID-массив можно во время установки системы Linux с помощью утилиты mdadm (Multiple Device Administration). Это позволяет объединить несколько дисков в логический элемент, что повышает надёжность (кроме RAID 0) и увеличивает производительность. \ No newline at end of file From fbbeb11c45d43114920cf7738868489ce599d9de Mon Sep 17 00:00:00 2001 From: kilka Date: Mon, 10 Nov 2025 21:58:17 +0400 Subject: [PATCH 10/15] Updated Lab5 --- admin/lab5.md | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/admin/lab5.md b/admin/lab5.md index 4469283..949d050 100644 --- a/admin/lab5.md +++ b/admin/lab5.md @@ -4,13 +4,14 @@ Task 1 Systemd юнит - это конфигурационный файл, который описывает как systemd должен управлять службой, сокетом, устройством, точкой монтирования и другими системными объектами. Основные типы юнитов: -service - системные службы и демоны +service - системные службы socket - сокеты для активации по требованию timer - планировщик задач (замена cron) mount - точки монтирования target - группы юнитов (аналог runlevels) 2. Проверье статус любого systemd юнита, какую информацию выводит эта команда? +su - systemctl status ssh или systemctl status ssh.service @@ -99,8 +100,9 @@ cd ~ # Выполняется из домашней директории. Task 3 Журнальчики 1. Посмотретите журналы ssh -sudo journalctl -u ssh -sudo journalctl -u ssh.service +su - +journalctl -u ssh +journalctl -u ssh.service 2. Выведите журналы в реальном времени sudo journalctl -f @@ -110,14 +112,15 @@ sudo journalctl -u ssh -f 4. Можно ли без комады journalctl прочитать логи systemd? Да, можно несколькими способами: +su - # 1. Через системные файлы -sudo cat /var/log/syslog | grep ssh +cat /var/log/syslog | grep ssh # 2. Через службу rsyslog -sudo cat /var/log/auth.log | grep ssh +cat /var/log/auth.log | grep ssh # 3. Через демона службы (если ведет собственный лог) -sudo cat /var/log/ssh/* +cat /var/log/ssh/* # 4. Просмотр бинарных журналов напрямую -sudo strings /var/log/journal/*/system.journal | grep ssh +strings /var/log/journal/*/system.journal | grep ssh 5. Сколько будет 2-2? echo $((2 - 2)) From 047131e184d3831e9b4e38f9f7e33d3284cfc220 Mon Sep 17 00:00:00 2001 From: kilka Date: Tue, 11 Nov 2025 23:53:46 +0400 Subject: [PATCH 11/15] Add Lab8 --- admin/lab8.md | 125 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 admin/lab8.md diff --git a/admin/lab8.md b/admin/lab8.md new file mode 100644 index 0000000..6587daf --- /dev/null +++ b/admin/lab8.md @@ -0,0 +1,125 @@ +Шарим +1. Установите пакет samba +su - +apt-get update +apt-get install samba + +2. ЧТо такое общая папка, зачем оно может быть нужно? +Общая папка - это директория, доступная по сети для других пользователей/компьютеров +Используется для: +- Обмена файлами между компьютерами +- Совместной работы над проектами +- Резервного копирования +- Доступа к файлам с разных устройств + +3. Создайте общую папку без пароля с правами только на чтение файлов +su - +mkdir -p /samba/public +chmod 755 /samba/public +echo "test file" > /samba/public/readme.txt +nano /etc/samba/smb.conf + +Добавляем в конец файла: +[public] + path = /samba/public + browseable = yes + read only = yes + guest ok = yes + +systemctl restart smb + +4. Создайте общую папку с паролем с правами на чтение и запись +mkdir -p /samba/private +chmod 777 /samba/private +useradd -M sambauser +smbpasswd -a sambauser +nano /etc/samba/smb.conf + +Добавляем в конец файла: +[private] + path = /samba/private + browseable = yes + read only = no + guest ok = no + valid users = sambauser + +systemctl restart smb + +5. Создайте общую папку с доступом для какой-то группы с полными правами +groupadd smbgroup +mkdir -p /samba/group +chgrp smbgroup /samba/group +chmod 770 /samba/group +useradd -G smbgroup user1 +smbpasswd -a user1 +nano /etc/samba/smb.conf + +Добавляем в конец файла: +[group] + path = /samba/group + browseable = yes + read only = no + guest ok = no + valid users = @smbgroup + write list = @smbgroup + +systemctl restart smb + +6. Создайте общую папку в которой у одной группы будет полный доступ, а у другой только доступ на чтение. Третья группа не должна иметь к ней доступа +groupadd fullaccess +groupadd readonly +groupadd noaccess +mkdir -p /samba/mixed +chgrp fullaccess /samba/mixed +chmod 775 /samba/mixed +useradd -G fullaccess user2 +useradd -G readonly user3 +useradd -G noaccess user4 +smbpasswd -a user2 +smbpasswd -a user3 +smbpasswd -a user4 +nano /etc/samba/smb.conf + +[mixed] + path = /samba/mixed + browseable = yes + read only = no + guest ok = no + valid users = @fullaccess, @readonly + write list = @fullaccess + read list = @readonly + invalid users = @noaccess + +systemctl restart smb + +# Дополняю секцию global ! + map to guest = bad user + guest account = nobody + +Разрешаю анонимный гостевой доступ к общей папке public без ввода пароля + +Проверяем, что все работает: +smbclient //localhost/public -N + +Вывод: Try "help" to get a list of possible commands. +smb: \> help +? allinfo altname archive backup +blocksize cancel case_sensitive cd chmod +chown close del deltree dir +du echo exit get getfacl +geteas hardlink help history iosize +lcd link lock lowercase ls +l mask md mget mkdir +mkfifo more mput newer notify +open posix posix_encrypt posix_open posix_mkdir +posix_rmdir posix_unlink posix_whoami print prompt +put pwd q queue quit +readlink rd recurse reget rename +reput rm rmdir showacls setea +setmode scopy stat symlink tar +tarmode timeout translate unlock volume +vuid wdel logon listconnect showconnect +tcon tdis tid utimes logoff +.. ! +smb: \> pwd +Current directory is \\localhost\public\ \ No newline at end of file From 6d9423a8d46f14474458907f78deb49b3c7b8888 Mon Sep 17 00:00:00 2001 From: kilka Date: Tue, 11 Nov 2025 23:54:12 +0400 Subject: [PATCH 12/15] Update Lab3 --- admin/lab3.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/admin/lab3.md b/admin/lab3.md index 4b1fd26..82c1c5e 100644 --- a/admin/lab3.md +++ b/admin/lab3.md @@ -96,14 +96,14 @@ lsblk 4. С помощью полученной информации создайте на диске таблицу разделов и фаловую систему ext4 su - -fdisk /dev/sda +fdisk /dev/sdb # n → p → 1 → Enter → Enter → w -mkfs.ext4 /dev/sda1 +mkfs.ext4 /dev/sdb1 5. Примонитруте диск в каталог /mnt su - mkdir /mnt/mydisk -mount /dev/sda1 /mnt/mydisk +mount /dev/sdb1 /mnt/mydisk 6. Зайдите в каталог и создайте там файлы su - @@ -119,10 +119,10 @@ ls /mnt/mydisk/ # Файлов не видно 8. Сделайте так чтобы диск автоматически подключался при загрузке систем (добавьте информацию о нём с fstab) su - -blkid /dev/sda1 # Копируем UUID +blkid /dev/sdb1 # Копируем UUID nano /etc/fstab # Открывается файл, идем в последнюю строку и записываем: -UUID=66c44db3-12ac-437b-a36c-8dd1a0986eae /mnt/ext4 defaults 0 2 +UUID="d768371c-0333-4b95-8e4a-48db2f0bcb2b" /mnt/ext4 defaults 0 2 9. Проверьте корретность записанных в fstab данных перед перезагрузкой mount -a From 427e980e9783ec28b794a4eb57d56391fa801054 Mon Sep 17 00:00:00 2001 From: kilka Date: Wed, 12 Nov 2025 23:16:24 +0400 Subject: [PATCH 13/15] Update Lab5 --- admin/lab5.md | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/admin/lab5.md b/admin/lab5.md index 949d050..5037de5 100644 --- a/admin/lab5.md +++ b/admin/lab5.md @@ -12,20 +12,28 @@ target - группы юнитов (аналог runlevels) 2. Проверье статус любого systemd юнита, какую информацию выводит эта команда? su - -systemctl status ssh или -systemctl status ssh.service +systemctl status sshd + +Эта команда показывает статус службы SSH демона (sshd): +Состояние "active (running)" +PID процесса +Время работы +Последние записи в логах 3. ПОпробуйте оставновить сервис. -sudo systemctl stop ssh +systemctl stop sshd + +Проверяем: +systemctl status sshd 4. Перезапустите его. -sudo systemctl restart ssh +systemctl restart sshd 5. УДалите из автозагрузки -sudo systemctl disable ssh +systemctl disable sshd 6. Верните обратно -sudo systemctl enable ssh +systemctl enable sshd 7. Что такое таймеры? Таймеры - это systemd юниты для планирования выполнения задач (аналог cron). Они могут запускать service юниты по расписанию. @@ -101,14 +109,13 @@ Task 3 Журнальчики 1. Посмотретите журналы ssh su - -journalctl -u ssh -journalctl -u ssh.service +journalctl -u sshd 2. Выведите журналы в реальном времени -sudo journalctl -f +journalctl -f 3. Выведите лог в реальном времени для службы sshd -sudo journalctl -u ssh -f +journalctl -u sshd -f 4. Можно ли без комады journalctl прочитать логи systemd? Да, можно несколькими способами: From 0252e6996835281ec8cb1db4db2146253cfd71c7 Mon Sep 17 00:00:00 2001 From: kilka Date: Wed, 26 Nov 2025 19:30:23 +0400 Subject: [PATCH 14/15] add Lab5 --- admin/lab5.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/admin/lab5.md b/admin/lab5.md index 5037de5..78d04dc 100644 --- a/admin/lab5.md +++ b/admin/lab5.md @@ -41,15 +41,33 @@ systemctl enable sshd Task 2 Пишем юниты 1. Создайте скрипт который создаёт папку заполняет её файлами ( имена 1-4 ) и записывает в них информацию о текущей дате, версии ядра, имени компьютера и списе всех файлов в домашнем каталоге пользователя от которого выполняется скрипт( не забудьте сдлеать проверку на существование файлов и папок) +su - + +mkdir -p /usr/local/bin +nano /usr/local/bin/system_info_collector.sh +# Зписываем в открывшийся файла: #!/bin/bash set -euo pipefail +# Всегда переходим в домашнюю директорию пользователя cd ~ -mkdir -p system_info_data +# Проверяем и создаем папку +if [ ! -d "system_info_data" ]; then + mkdir -p system_info_data + echo "Создана папка system_info_data" +else + echo "Папка system_info_data уже существует" +fi +# Создаем 4 файла с информацией for i in 1 2 3 4; do - cat > "system_info_data/file$i.txt" << EOF + file_path="system_info_data/file$i.txt" + if [ -f "$file_path" ]; then + echo "Файл $file_path уже существует, перезаписываем" + fi + + cat > "$file_path" << EOF Дата: $(date) Ядро: $(uname -r) Компьютер: $(hostname) @@ -58,9 +76,19 @@ for i in 1 2 3 4; do Домашняя папка: $(ls -la ~) EOF + echo "Создан файл $file_path" done +echo "Скрипт выполнен успешно" + +# Делаем скрипт исполняемым +chmod +x /usr/local/bin/system_info_collector.sh + 2. Создайте юнит, который будет вызывать этот скрипт при запуске. Проверьте +su - +nano /etc/systemd/system/system-info.service + +# Записываем [Unit] Description=System Info Collector @@ -72,7 +100,16 @@ User=root [Install] WantedBy=multi-user.target +# Тестируем +systemctl daemon-reload +systemctl start system-info.service +systemctl status system-info.service + 3. Создайте таймер который будет вызывать выполнение одноимённого systemd юнита каждые 5 минут. +su - +nano /etc/systemd/system/system-info.timer + +# Записываем [Unit] Description=Run every 5 minutes @@ -87,9 +124,14 @@ WantedBy=timers.target По умолчанию от root'а 5. Создайте пользователя, от имени которого будет выполняться ваш скрипт. -sudo useradd -m systemuser +su - +useradd -m systemuser 6. Дополните юнит информацией о пользователе, от которого должен выполняться скрипт. +su - +nano /etc/systemd/system/system-info.service + +# Обновляем [Unit] Description=System Info Collector @@ -101,6 +143,10 @@ User=systemuser [Install] WantedBy=multi-user.target +# Обновляем +systemctl daemon-reload +chown systemuser:systemuser /usr/local/bin/system_info_collector.sh + 7. Дополните ваш скрипт так, чтобы он независимо от местоположения всегда выполнялся в домашней папке того, кто его вызывает. cd ~ # Выполняется из домашней директории. ... From 44ecd574085f363fde06e415fcd88a104ad284d9 Mon Sep 17 00:00:00 2001 From: kilka Date: Wed, 26 Nov 2025 20:49:50 +0400 Subject: [PATCH 15/15] Add Lab7 --- admin/lab7.md | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 admin/lab7.md diff --git a/admin/lab7.md b/admin/lab7.md new file mode 100644 index 0000000..4b537f4 --- /dev/null +++ b/admin/lab7.md @@ -0,0 +1,124 @@ +Task 1 +Настриваем +1. Какой по умолчанию используется порт для поключения? +su - +grep Port /etc/ssh/sshd_config +# По умолчанию: 22 + +2. Можно ли его изменить? если да то как? +# Редактируем конфиг +nano /etc/ssh/sshd_config +# Находим строку #Port 22 и меняем на: +Port 2222 +# Сохраняем и перезапускаем службу +systemctl restart sshd + +3. Какая служба отвечает за обработку запросов на подключения по ssh? +systemctl status sshd +# Имя службы: sshd (Secure Shell Daemon) + +4. Какой файл конфигурации отвечает за его настройку? +/etc/ssh/sshd_config + +5. Попробуйте подключиться по ssh к предоставленному вам серверу +ssh student@ternar.io -p 215 + +6. Отредактируйте файл настроек на сервере так, чтобы была возможность подключиться к серверу используя пользователя root +sudo vi /etc/openssh/sshd_config + +# Меняем: +#PermitRootLogin without-rassword +# на +PermitRootLogin yes +#^q! + +sudo systemctl restart sshd +7. Измените колличество ошибок ввода пароля перед сборосом соединения, покажите эти измененения +sudo nano /etc/openssh/sshd_config + +# УБираем комментарий и меняем: +MaxAuthTries 3 + +sudo grep MaxAuthTries /etc/openssh/sshd_config +sudo sudosystemctl restart sshd + +8. Создайте пользователя ssh-user и попробуйте им подключиться к серверу +sudo useradd -m ssh-user +sudo passwd ssh-user + +9. Ограничте ему возможность подключения к серверу +sudo vi /etc/openssh/sshd_config +# Добавляем в конец файла +DenyUsers ssh-user + +sudo systemctl restart sshd +10. Как вы это сделали? +Описано выше + +11. Что хранится в файле known_hosts? +# Просмотр содержимого +cat ~/.ssh/known_hosts +# В файле known_hosts хранятся отпечатки SSH-ключей серверов для проверки их подлинности. + +Task 2 +Конфижим для удобства +1. Где хранятся пользвательские и системные настройки подключения? +# Системные настройки (для всех пользователей) +ls -la /etc/openssh/ssh_config + +# Пользовательские настройки +ls -la ~/.ssh/config + +2. Что за файл options? +Основной файл конфигурации SSH-клиента для пользовательских настроек подключения. + +3. Отредактируйте файл options так, чтобы можно было подключаться не вводя имя пользвателя и порт +mkdir -p ~/.ssh +cat > ~/.ssh/config << 'EOF' +Host my-server + HostName ternar.io + User student + Port 215 +EOF + +# Проверка +cat ~/.ssh/config + +4. Назовите подключение удобным для вас спсобом +my-server + +5. Проверьте работоспособность +ssh my-server + +Task 3 +Ключики +1. Что такое ssh ключи и зачем они нужны? +SSH ключи - это пара криптографических ключей (приватный и публичный) +Назначение: безопасная аутентификация без ввода пароля +Приватный ключ хранится у клиента, публичный - на сервере + +2. Как их создать? +ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -N "" + +# Проверка +ls -la ~/.ssh/id_ed25519* + +3. Создайт пару публичный/приватный ключ ed_25519, где они хранятся? +~/.ssh/id_ed25519 - приватный ключ +~/.ssh/id_ed25519.pub - публичный ключ + +4. Скопируйте публичный ключ на ваш сервер, в каком файле он будет храниться? +ssh-copy-id -i ~/.ssh/id_ed25519 my-server +# Публичный ключ хранится в файле ~/.ssh/authorized_keys + +5. Попробуйте подключиться к серверу, у вас запросили пароль? +ssh -i ~/.ssh/id_ed25519 my-server +# Пароль не запросился + +6. Запретите подключение с паролем для всех пользователей, оставьте только с помощью ключа. +sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/openssh/sshd_config +sudo sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/' /etc/openssh/sshd_config +sudo systemctl restart sshd + +# Проверка +sudo grep PasswordAuthentication /etc/openssh/sshd_config \ No newline at end of file