rhcsa_labs/rh199_(rapid)/labs_solutions.md

237 lines
11 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.

#### Лабораторные работы по курсу RH199 (RHCSA)
***
###### top
*лабораторные работы начинаются в 3-й главы*
***server1 - 192.168.10.10
user: student
password: student
root password: redhat***
***server2 - 192.168.10.11
user: student
password: student
root password: redhat***
3. [Управление локальными пользователями и группами.](#chapter3)
4. [Управление доступом к файлам.](#chapter4)
5. [](#chapter5)
6. [](#chapter6)
7. [](#chapter7)
8. [](#chapter8)
9. [](#chapter9)
10. [](#chapter10)
11. [](#chapter11)
12. [](#chapter12)
13. [](#chapter13)
14. [](#chapter14)
15. [](#chapter15)
16. [](#chapter16)
17. [](#chapter17)
***
###### Chapter3
**Управление локальными пользователями и группами.**
1. Подключиться по ssh к server1
```bash
da2001@Zenmint ~ $ ssh student@server1
```
2. У всех вновь создаваемых пользователей пароль необходимо изменять каждые 30 дней.
```bash
[student@server1 ~]$ sudo -i
[sudo] пароль для student:
[root@server1 ~]# vim /etc/login.defs
```
*необходимо изменить строку*
```bash
PASS_MAX_DAYS 30
```
3. Создать новую группу `consultants` с GID 35000.
```bash
[root@server1 ~]# groupadd -g 35000 consultants
```
4. Настроить административные права членов группы `consultants`, чтобы они могли выполнять любые команды от любых пользователей.
*best practices RedHat не редактировать существующие системные файлы, а создавать свои в соответствующих директориях.
Создадим файл vim `/etc/sudoers.d/consultants`*
```bash
[root@server1 ~]# vim /etc/sudoers.d/consultants
```
*добавить строку*
```bash
%consultants ALL=(ALL) ALL
```
5. Создать пользователей `consultant1`, `consultant2`, и `consultant3` и задать им в качестве дополнительной группы `consultants`.
```bash
[root@server1 ~]# useradd -G consultants consultant1
[root@server1 ~]# useradd -G consultants consultant2
[root@server1 ~]# useradd -G consultants consultant3
```
6. Учётные записи пользователей `consultant1`, `consultant2`, и `consultant3` настроить таким образом, чтобы срок их действия истекал через 90 дней с текущей даты.
*узнать какая дата будет через 90 дней от текущей даты можно с помощью команды*
```bash
[root@server1 ~]# date -d "+90 days" +%F
```
*ограничить срок действия пароля*
```bash
[root@server1 ~]# chage -E 2022-01-06 consultant1
[root@server1 ~]# chage -E 2022-01-06 consultant2
[root@server1 ~]# chage -E 2022-01-06 consultant3
```
7. Изменить политику паролей для учетной записи `consultant2`, чтобы нужно было менять пароль каждые 15 дней.
```bash
[root@server1 ~]# chage -M 15 consultant2
```
8. Пользователи `consultant1`, `consultant2`, и `consultant3` при первом входе в систему должны изменить свои пароли в принудительном порядке.
```bash
[root@server1 ~]# chage -d 0 consultant1
[root@server1 ~]# chage -d 0 consultant2
[root@server1 ~]# chage -d 0 consultant3
```
**Проверка**
Наличие группы `consultants`, правильность её GID и члены группы
```bash
[student@server1 ~]$ cat /etc/group | grep consultants
consultants:x:35000:consultant1,consultant2,consultant3
```
Срок действия паролей, учётной записи и требование изменить пароль при первом входе в систему
```bash
[root@server1 ~]# chage -l consultant1
Последний раз пароль был изменён : пароль должен быть изменён
Срок действия пароля истекает : пароль должен быть изменён
Пароль будет деактивирован через : пароль должен быть изменён
Срок действия учётной записи истекает : янв 06, 2022
Минимальное количество дней между сменой пароля : 0
Максимальное количество дней между сменой пароля : 30
Количество дней с предупреждением перед деактивацией пароля : 7
[root@server1 ~]# chage -l consultant2
Последний раз пароль был изменён : пароль должен быть изменён
Срок действия пароля истекает : пароль должен быть изменён
Пароль будет деактивирован через : пароль должен быть изменён
Срок действия учётной записи истекает : янв 06, 2022
Минимальное количество дней между сменой пароля : 0
Максимальное количество дней между сменой пароля : 15
Количество дней с предупреждением перед деактивацией пароля : 7
[root@server1 ~]# chage -l consultant3
Последний раз пароль был изменён : пароль должен быть изменён
Срок действия пароля истекает : пароль должен быть изменён
Пароль будет деактивирован через : пароль должен быть изменён
Срок действия учётной записи истекает : янв 06, 2022
Минимальное количество дней между сменой пароля : 0
Максимальное количество дней между сменой пароля : 30
Количество дней с предупреждением перед деактивацией пароля : 7
```
Наличие административных прав у членов группы `consultants`
```bash
[root@server1 ~]# cat /etc/sudoers.d/consultants
%consultants ALL=(ALL) ALL
```
[вверх](#top)
***
###### Chapter4
**Управление доступом к файлам.**
1. На server1 создать директорию `/home/techdocs`.
```bash
[student@server1 ~]$ sudo -i
[sudo] пароль для student:
[root@server1 ~]# mkdir /home/techdocs
```
2. Создать группу `techdocs`, изменить группу владельца директории `/home/techdocs` на группу `techdocs`.
```bash
[root@server1 ~]# groupadd techdocs
[root@server1 ~]# chgrp techdocs /home/techdocs/
```
3. Создать пользователей `tech1`, `tech2` и добавить их в группу `techdocs`.
```bash
[root@server1 ~]# useradd -G techdocs tech1
[root@server1 ~]# useradd -G techdocs tech2
```
4. Убедиться, что пользователи `tech1`, `tech2` не могут создавать файлы в папке `/home/techdocs`.
```bash
[root@server1 ~]# su - tech1
[tech1@server1 ~]$ touch /home/techdocs/testfile
touch: невозможно выполнить touch для '/home/techdocs/testfile': Отказано в доступе
[tech1@server1 ~]$ выход
[root@server1 ~]# su - tech2
[tech2@server1 ~]$ touch /home/techdocs/
touch: установка временных отметок '/home/techdocs/': Отказано в доступе
[tech2@server1 ~]$ выход
```
5. Для директории `/home/techdocs` установить следующие разрешения: setgid (2), чтение/запись/исполнение для владельца и группы (7), для остальных нет никаких прав (0).
```bash
[root@server1 ~]# chmod 2770 /home/techdocs/
```
6. Проверить, что разрешения установлены корректно.
```bash
[root@server1 ~]# ls -ld /home/techdocs/
drwxrws---. 2 root techdocs 6 окт 9 03:36 /home/techdocs/
```
7. Проверить, что члены группы `techdocs` (`tech1`, `tech2`) теперь могут создавать и редактировать файлы в директории `/home/techdocs`, а другие пользователи не могут.
```bash
[root@server1 ~]# su - tech1
[tech1@server1 ~]$ touch /home/techdocs/file1
[tech1@server1 ~]$ выход
[root@server1 ~]# su - tech2
[tech2@server1 ~]$ touch /home/techdocs/file2
[tech2@server1 ~]$ echo "Test" >> /home/techdocs/file1
[tech2@server1 ~]$ cat /home/techdocs/file1
Test
[tech2@server1 ~]$ выход
[root@server1 ~]# su - student
[student@server1 ~]$ touch /home/techdocs/file3
touch: невозможно выполнить touch для '/home/techdocs/file3': Отказано в доступе
[student@server1 ~]$ echo "Student test" >> /home/techdocs/file1
-bash: /home/techdocs/file1: Отказано в доступе
```
8. Изменить глобальный скрипт загрузки. Обычные пользователи должны иметь umask при которой другие пользователи не смогут просматривать и изменять новые файлы и каталоги.
*создадим новый файл `/etc/profile.d/local-umask.sh` и скопируем в него блок, который имеет отношение к umask из файла `/etc/profile`, значение umask в первом упоминании заменим на 007.*
**Важно обратить внимание - название файла обязательно должно иметь расширение `.sh`, т.к. только такие файлы проверяются.**
```bash
[root@server1 ~]# vim /etc/profile.d/local-umask.sh
```
```bash
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
umask 007
else
umask 022
fi
```
**Проверка**
*проверим только последний пункт, т.к. все предыдущие проверяются в процессе выполнения*
*назначим пользователю `student` временную маску 007, создадим новый файл и проверим его разрешения.*
```bash
[student@server1 ~]$ umask 007
[student@server1 ~]$ touch file1
[student@server1 ~]$ ls -l
итого 0
-rw-rw----. 1 student student 0 окт 9 04:00 file1
```
*остальные не имеют никаких разрешений на файл - то что было нужно в задании.*
[вверх](#top)
***