#### Лабораторные работы по видеокурсу Sander Van Vugt

***

*лабораторные работы начинаются в 3-й главы*

3. [Базовые инструменты для работы с файлами.](#Chapter3)

3. [Chapter3](#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`.

***