rhcsa_labs/labs.md

309 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#### Лабораторные работы по видеокурсу 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`.
***