- основы работы в оболочке Linux,
- управление пользователями и правами файлов,
- регулярные выражения и написание скриптов в bash,
- работа с процессами и управление загрузкой и сервисами в Linux.
- Устанавливать и настраивать Ubuntu;
- Понимать архитектуру Linux и Unix-подобных систем;
- Работать в терминале (пригодится и тем, кто использует Mac);
- Работать с файлами, файловыми системами и устройствами в Linux;
- Администрировать Linux и другие Unix-подобные операционные системы;
- Понимать и писать регулярные выражения;
- Решать задачи автоматизации, писать скрипты и назначать задачи по расписанию;
- Настроить на базе Linux веб-сервер и защитить его с помощью iptables;
- Работать с git, использовать контейнеризацию Docker.
- 1 Обзавестись установленной версией Linux Ubuntu. В качестве решения необходимо прислать текстовый файл (*.txt) с кодом команды, выводящей информацию о версии ОС (вместе с результатом работы этой команды)
- 1 Создать каталоги students и mentors в домашней директории, а в них — текстовые файлы students_list.txt и mentors_list.txt соответственно.
- 2 Открыть созданные в п.1 файлы в любом текстовом редакторе и заполнить их (в соответствии с названием) списком Ваших одногруппников и наставников на данном потоке.
- 3 Переместите файл mentors_list.txt в папку students.
- 4 Удалите папку mentors.
- 5 Переименуйте папку students в students_and_mentors.
- 6 Удалите папку students_and_mentors вместе с содержимым.
- 7 Подключитесь к машине с Linux по протоколу SSH.
- 8* Используя дополнительный материал, настроить авторизацию по SSH с использованием ключей. В качестве решения необходимо прислать текстовый файл (*.txt) с набором используемых команд и их результатами (можно скопировать текст из консоли).
- создать нового пользователя;
- убедиться, что информация о нем появилась в соответствующих файлах в системе;
- удалить созданного пользователя;
- создать группу;
- попрактиковаться в смене групп у пользователей;
- добавить пользователя в группу, не меняя основной;
- удалить пользователя из группы.
- Создать пользователя с правами суперпользователя. Проверить результат.
- Используя дополнительные материалы, выдать одному из созданных пользователей право на выполнение ряда команд, требующих прав суперпользователя (команды выбираем на своё усмотрение). В качестве решения необходимо прислать текстовый файл (*.txt) с набором используемых команд и их результатами (можно скопировать текст из консоли).
- 1 Потоки ввода/вывода. Создать файл, используя команду echo. Используя команду cat, прочитать содержимое всех файлов каталога etc, ошибки перенаправить в отдельный файл.
- 2 Конвейер (pipeline). Использовать команду cut на вывод длинного списка каталога, чтобы отобразить только права доступа к файлам. Затем отправить в конвейере этот вывод на sort и uniq, чтобы отфильтровать все повторяющиеся строки.
- 3 Управление процессами.) Изменить конфигурационный файл службы SSH: /etc/ssh/sshd_config, отключив аутентификацию по паролю PasswordAuthentication no. Выполните рестарт службы systemctl restart sshd (service sshd restart), верните аутентификацию по паролю, выполните reload службы systemctl reload sshd (services sshd reload). В чём различие между действиями restart и reload? Создайте файл при помощи команды cat > file_name, напишите текст и завершите комбинацией ctrl+d. Какой сигнал передадим процессу?
- 4 Сигналы процессам. Запустите mc. Используя ps, найдите PID процесса, завершите процесс, передав ему сигнал 9.
- 1 Создать файл file1 и наполнить его произвольным содержимым. Скопировать его в file2. Создать символическую ссылку file3 на file1. Создать жёсткую ссылку file4 на file1. Посмотреть, какие inode у файлов. Удалить file1. Что стало с остальными созданными файлами? Попробовать вывести их на экран.
- 2 Дать созданным файлам другие, произвольные имена. Создать новую символическую ссылку. Переместить ссылки в другую директорию.
- 3 Создать два произвольных файла. Первому присвоить права на чтение и запись для владельца и группы, только на чтение — для всех. Второму присвоить права на чтение и запись только для владельца.
- 4 Создать группу developer и нескольких пользователей, входящих в неё. Создать директорию для совместной работы. Сделать так, чтобы созданные одними пользователями файлы могли изменять другие пользователи этой группы.
- 5 Создать в директории для совместной работы поддиректорию для обмена файлами, но чтобы удалять файлы могли только их создатели.
- 6 Создать директорию, в которой есть несколько файлов. Сделать так, чтобы открыть файлы можно было, только зная имя файла, а через ls список файлов посмотреть было нельзя.
- 1 Вывести на экран 3 раза имя пользователя, от которого запускается команда.
- 2 Вывести с помощью цикла while все четные числа от 0 до 100 включительно.
- 3 Создать с помощью nano файл test.txt. Настроить автоматический бэкап этого файла раз в 10 минут в файл с названием test.txt.bak с использованием cron.
- Подключить репозиторий с nginx любым удобным способом, установить nginx и потом удалить nginx, используя утилиту dpkg.
- Установить пакет на свой выбор, используя snap.
- Настроить iptables: разрешить подключения только на 22-й и 80-й порты.
- Настроить проброс портов локально с порта 80 на порт 8080.
- 1 Переустановить операционную систему (по желанию, для дополнительной практики)
- 2 Подключить репозиторий Docker.
- 3 Запустить контейнер с Ubuntu.
- 4 Используя Dockerfile, собрать связку nginx + PHP-FPM в одном контейнере.
