#### Лабораторные работы по видеокурсу Sander Van Vugt *** *лабораторные работы начинаются в 3-й главы* 3. [Базовые инструменты для работы с файлами.](#Chapter3) 4. [Работа с текстовыми файлами.](#Chapter4) 5. [Подключение к серверу RHEL.](#Chapter5) 6. [Управление пользователями и группами.](#Chapter6) 7. [Права доступа к файлам.](#Chapter7) 8. [Настройка сети.](#Chapter8) 9. [Управление процессами.](#Chapter9) 10. [Управление программным обеспечением.](#Chapter10) 11. [Работа с systemd.](#Chapter11) 12. [Планирование заданий.](#Chapter12) 13. [Настройка хранения логов.](#Chapter13) 14. [Управление хранилищем.](#Chapter14) 15. [Управление расширенным хранилищем.](#Chapter15) 16. [Управление ядром.](#Chapter16) 17. [Управление загрузкой ОС.](#Chapter17) 18. [Устранение проблем.](#Chapter18) 19. [Написание shel скриптов.](#Chapter19) 20. [Настройка ssh.](#Chapter20) 21. [Настройка HTTP.](#Chapter21) 22. [Управление SELinux.](#Chapter22) 23. [Управление межсетевым экраном.](#Chapter23) 24. [Автоматическая установка.](#Chapter24) 25. [Настройка даты и времени.](#Chapter25) 26. [Доступ к удалённым ФС.](#Chapter26) *** ###### Chapter3 **Базовые инструменты для работы с файлами.** 1. Создать структуру каталогов `/tmp/files/pictures`, `/tmp/files/photos`, `/tmp/files/videos` 2. Из папки `/etc` скопировать все файлы имена которых начинаются с `a`, `b` или `c` (лат.) в каталог `/tmp/files` 3. Из `/tmp/files` переместить все файлы имена которых начинаются на `a` или `b` в `/tmp/files/photos`, а файлы, имена которых начинаются на `c` переместить в `/tmp/files/videos` 4. Найти в папке `/etc` все файлы, размер которых меньше 1000 байт и скопировать их в `/tmp/files/pictures` 5. В папке `/tmp/files` создать символьную ссылку на `/var` 6. В папке `/tmp/files` создать сжатый архив директории `/home` 7. Распаковать архив с относительными именами файлов в `/tmp/archive/` *** ###### Chapter4 **Работа с текстовыми файлами.** 1. Используйте `head` и `tail` для отображения пятой строки в файле `/etc/passwd` 2. Используйте `sed` для отображения пятой строки в файле `/etc/passwd` 3. Используйте `awk` в конвейере, чтобы отфильтровать последний столбец в выводе `ps aux` 4. Используйте `grep` для отображения всех файлов в директории `/etc`, содержащих строки со словом `root` 5. Показать все строки в файлах директории `/etc` состоящие из 3-х символов. Используйте `grep` 6. Используйте `grep`, чтобы найти все файлы содержащие `alex`, но не `alexander`. Подсказка: создайте файл, в первой строке - `alex`, во второй `alexander` *** ###### Chapter5 **Подключение к серверу RHEL.** 1. Из графической консоли перейдите в вирутальный терминал tty6. 2. После выполнения 1-го задания авторизуйтесь как обычный пользователь и вернитесь в графический интерфейс, используя соответствующую команду. 3. Используя `ssh` подключитесь как `root` к `localhost` *** ###### Chapter6 **Управление пользователями и группами.** 1. Настроить для всех новых пользователей: минимальная длина пароля - 6 символов, срок действия 90 дней. 2. В домашней директории всех новых пользователей создается пустой файл с именем `newfile`. 3. Создать новых пользователей `anna`, `andrey`, `linda`, `lisa`. 4. Установить пароль для `anna` и `andrey` - `password`, для `linda` и `lisa` - пароль отключить. 5. Создать группы `profs`, `students` и назначить `anna` и `andrey` членами `profs`, а `linda` и `lisa` - членами группы `students`. *** ###### Chapter7 **Права доступа к файлам.** 1. Запретить доступ другим пользователям (`others`) ко всем новым файлам пользователя Linda. 2. Создать структуру общих каталогов `/data/profs`, `/data/students` со следующими разрешениями: * члены групп имеют доступ на чтение и запись в эти директории, другие пользователи не имеют никаких разрешений; * члены групп могут редактировать все файлы создаваемые в этих директориях; * пользователи могут удалять только файлы , которые им принадлежат; * члены группы `profs` имеют доступ на чтение в `/data/students` * пользователь `anna` должна иметь возможность удалять файлы из директорий `/data/profs` и `/data/students` *** ###### Chapter8 **Настройка сети.** 1. Назначить серверу статический IP адрес в текущей подсети. 2. Назначить дополнительный IP адрес 10.0.0.10/24 на тот же сетевой интерфейс. 3. Перезагрузить сервер и убедиться, что настройки сохранились. *** ###### Chapter9 **Управление процессами.** 1. Запустить команду `dd if=/dev/zero of=/dev/null`. Перевести запущенный процесс в фоновый режим. 2. Запустить предыдущую команду 3 раза в фоновом режиме. 3. Используя `jobs` получить информацию о запущенных фоновых процессах. 4. Из `top` изменить приоритет (`niceness`) одного из ранее запущенных `dd` на значение `-5`. Убедиться, что использование CPU этого процесса увеличилось. 5. Остановить все запущенные процессы `dd` из командной строки. *** ###### Chapter10 **Управление программным обеспечением.** 1. Убедитесь, что ваша система использует YUM репозиторий для установки основных пакетов ОС. 2. Найдите пакет, содержащий sepolicy, и установите его. 3. Установите предыдущую версию PHP. 4. Загрузите из репозитория пакет httpd не устанавливая, проверьте есть ли в этом пакете какие-либо скрипты. *** ###### Chapter11 **Работа с systemd.** 1. Убедиться, что сервис `httpd` стартует автоматически при загрузке системы. 2. Отредактировать конфигурацию таким образом, чтобы в случае сбоя, через 1 минуту сервис снова работал. *** ###### Chapter12 **Планирование заданий.** 1. Убедиться, что `systemd timer`, который очищает временные файлы, активен. 2. Запустить задание cron, которое выполнит команду `touch /tmp/cronfile` через 5 минут. 3. Используя `at` запланировать задание отключения компьютера сегодня в удобное время. *** ###### Chapter13 **Настройка хранения логов.** 1. Убедитесь, что логи systemd сохраняются постоянно (persistently). 2. Создать запись в rsyslog, при которой сохраняются все сообщения категории error и выше (severity - error) в `/var/log/error` 3. Убедитесь, что `/var/log/error` архивируется ежемесячно, при этом 12 последних сообщений должны сохраниться перед архивацией. *** ###### Chapter14 **Управление хранилищем.** *Для выполнения этой лабораторной работы необходимо создать дополнительный жёсткий диск в вашей виртуальной машине размером 10 ГБ.* 1. Создать основной раздел размером 1ГиБ. Отформатировать его в Ext4 и задать постоянную точку монтирования в `/mounts/files`, используя его UUID. 2. Создать расширенный раздел, включающий все оставшееся дисковое пространство. В этом разделе создать раздел XFS размером 5OO МиБ с постоянной точкой монтирования в `/mounts/xfs`, используя метку `myxfs`. 3. Создать раздел подкачки 5OO МиБ и активировать его. После перезагрузки он должен быть доступен. *** ###### Chapter15 **Управление расширенным хранилищем.** *Для выполнения этой лабораторной работы необходимо создать дополнительный жёсткий диск в вашей виртуальной машине размером 10 ГБ.* 1. Создать LVM том с именем `lvdb` размером 1 Гб, Также создать VG и PV, необходимые для этого LV. 2. Отформатировать созданный LV в XFS и примонтировать на постоянной основе в папку `/mount/lvdb` 3. Используя соответствующее решение, создать том с тонким выделением (thin provisioned volume) объёмом 10 Тб. 4. Создать зашифрованный том LUKS объемом 1 ГБ с именем `secret`. Убедитесь, что том монтируется постоянно, но не автоматически в `/mount/secret`. *** ###### Chapter16 **Управление ядром.** 1. Обновить версию ядра. 2. Включить маршрутизацию IPv4 пакетов *** ###### Chapter17 **Управление загрузкой ОС.** 1. Назначить режимом загрузки по-умолчанию - multi user target. 2. Изменить конфигурацию загрузки - удалить опции, скрывающие процесс загрузки ОС. *** ###### Chapter18 **Устранение проблем.** 1. Сброс пароля root. *** ###### Chapter19 **Написание shel скриптов.** 1. Написать скрипт, принимающий аргумент. Если аргумент - "yes", скрипт должен выполнить команду `echo that's nice`, если аргумент - "no", скрипт должен выполнить команду `echo I'm sorry to hear that`. Во всех остальных случаях - `echo unknown argument provided` *** ###### Chapter20 **Настройка ssh.** 1. Настроить доступ с использованием ssh ключей для доступа на localhost 2. Настроить ssh таким образом, чтобы только пользователи linda и root имели возможность подключения *** ###### Chapter21 **Настройка HTTP.** 1. Настроить Apache для отображения простой web страницы с текстом `Hello, world!` *** ###### Chapter22 **Управление SELinux.** 1. Убедиться, что SELinux включен и работает в режиме enforcing. 2. Некоторые файлы в `/etc` имеют неверную метку контекста. Необходимо это исправить. *** ###### Chapter23 **Управление межсетевым экраном.** 1. Настроить фаервол таким образом, чтобы службы ssh и Apache могли работать. *** ###### Chapter24 **Автоматическая установка.** 1. Создать kickstart файл `my-ks.cfg`, убедиться, что его можно использовать для автоматической установки. Кроме этого необходимо учесть: - установщик должен запросить пароль - сетевое поключение будет доступно при загрузке - имя компьютера будет `server10.example.com` *** ###### Chapter25 **Настройка даты и времени.** 1. Установить часовой пояс в соответствии с расположением. 2. Вручную установить время на 5 минут вперед. 3. Убедиться, что синхронизация времени по NTP активно и работает. *** ###### Chapter26 **Доступ к удалённым ФС.** 1. На своём IPA сервере установить hostname `labipa.example.com`. 2. Настроить на IPA сервере доступ для чтения/записи к двум папкам: - `home/ldap` - `/data` 3. В папке `/home/ldap` должны создаваться поддиректории с именами LDAP пользователей. 4. Домашние директории LDAP пользователей доступны по NFS по пути `/home/ldap/username`. Необходимо настроить их автоматическое монтирование. 5. Настроить NFS клиент для автоматического монтирования `labipa:/data`. ***