From da58cfe5ac52ff532dcc61a32a893f153c9615cd Mon Sep 17 00:00:00 2001
From: artemdolgiy <artem@da2001.ru>
Date: Wed, 1 Sep 2021 09:11:00 +0300
Subject: [PATCH] init

---
 labs.md          | 111 +++++++++++++++++
 labs_solution.md | 302 +++++++++++++++++++++++++++++++++++++++++++++++
 readme.md        |  17 +++
 3 files changed, 430 insertions(+)
 create mode 100644 labs.md
 create mode 100644 labs_solution.md
 create mode 100644 readme.md

diff --git a/labs.md b/labs.md
new file mode 100644
index 0000000..2d532c3
--- /dev/null
+++ b/labs.md
@@ -0,0 +1,111 @@
+#### Лабораторные работы по видеокурсу Sander Van Vugt
+
+***
+
+**Глава 3. Базовые инструменты для работы с файлами.**
+
+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/`
+
+***
+
+**Глава 4. Работа с текстовыми файлами.**
+
+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`
+
+***
+
+**Глава 5. Подключение к серверу RHEL.**
+
+1. Из графической консоли перейдите в вирутальный терминал tty6.
+
+2. После выполнения 1-го задания авторизуйтесь как обычный пользователь и вернитесь в графический интерфейс, используя соответствующую команду.
+
+3. Используя `ssh` подключитесь как `root` к `localhost`
+
+***
+
+**Глава 6. Управление пользователями и группами.**
+
+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`.
+
+***
+
+**Главал 7. Права доступа к файлам.**
+
+1. Запретить доступ другим пользователям (`others`) ко всем новым файлам пользователя Linda.
+
+2. Создать структуру общих каталогов `/data/profs`, `/data/students` со следующими разрешениями:
+   * члены групп имеют доступ на чтение и запись в эти директории, другие пользователи не имеют никаких разрешений;
+   * члены групп могут редактировать все файлы создаваемые в этих директориях;
+   * пользователи могут удалять только файлы , которые им принадлежат;
+   * члены группы `profs` имеют доступ на чтение в `/data/students`
+   * пользователь `anna` должна иметь возможность удалять файлы из директорий `/data/profs` и `/data/students`
+
+***
+
+**Глава 8. Настройка сети.**
+
+1. Назначить серверу статический IP адрес в текущей подсети.
+
+2. Назначить дополнительный IP адрес 10.0.0.10/24 на тот же сетевой интерфейс.
+
+3. Перезагрузить сервер и убедиться, что настройки сохранились.
+
+***
+
+**Глава 9. Управление процессами.**
+
+1. Запустить команду `dd if=/dev/zero of=/dev/null`. Перевести запущенный процесс в фоновый режим.
+
+2. Запустить предыдущую команду 3 раза в фоновом режиме.
+
+3. Используя `jobs` получить информацию о запущенных фоновых процессах.
+
+4. Из `top` изменить приоритет (`niceness`) одного из ранее запущенных `dd` на значение `-5`. Убедиться, что использование CPU этого процесса увеличилось.
+
+5. Остановить все запущенные процессы `dd` из командной строки.
+
+***
+
+**Глава 10. Управление программным обеспечением.**
+
+1. Убедитесь, что ваша система использует YUM репозиторий для установки основных пакетов ОС.
+
+2. Найдите пакет, содержащий sepolicy, и установите его.
+
+3. Установите предыдущую версию PHP.
+
+4. Загрузите из репозитория пакет httpd не устанавливая, проверьте есть ли в этом пакете какие-либо скрипты.
+
+***
+
diff --git a/labs_solution.md b/labs_solution.md
new file mode 100644
index 0000000..4c64202
--- /dev/null
+++ b/labs_solution.md
@@ -0,0 +1,302 @@
+#### Решения лабораторных работ по видеокурсу Sander Van Vugt
+
+***
+
+**Глава 3. Базовые инструменты для работы с файлами.**
+
+1. Создать структуру каталогов `/tmp/files/pictures`, `/tmp/files/photos`, `/tmp/files/videos`
+```bash
+mkdir -p /tmp/files/pictures /tmp/files/photos /tmp/files/videos
+```
+
+2. Из папки `/etc` скопировать все файлы имена которых начинаются с `a`, `b` или `c` (лат.) в каталог `/tmp/files`
+```bash
+cp /etc/[a-c]* /tmp/files
+```
+
+3. Из `/tmp/files` переместить все файлы имена которых начинаются на `a` или `b` в `/tmp/files/photos`, а файлы, имена которых начинаются на `c` переместить в `/tmp/files/videos`
+```bash
+mv /tmp/files/[ab]* /tmp/files/photos
+mv /tmp/files/c* /tmp/files/videos
+```
+
+4. Найти в папке `/etc` все файлы, размер которых меньше 1000 байт и скопировать их в `/tmp/files/pictures`
+```bash
+find /etc -type f -size -1000c -exec cp {} /tmp/files/pictures \;
+```
+
+5. В папке `/tmp/files` создать символьную ссылку на `/var`
+```bash
+cd /tmp/files
+ln -s /var .
+```
+
+6. В папке `/tmp/files` создать сжатый архив директории `/home`
+```bash
+tar -zcvf home.tar.gz /home
+```
+
+7. Распаковать архив с относительными именами файлов в `/tmp/archive/`
+```bash
+mkdir /tmp/archive
+tar -xvf home.tar.gz -C /tmp/archive
+```
+
+***
+
+**Глава 4. Работа с текстовыми файлами.**
+
+1. Используйте `head` и `tail` для отображения пятой строки в файле `/etc/passwd`
+```bash
+head -n 5 /etc/passwd | tail -n 1
+```
+
+2. Используйте `sed` для отображения пятой строки в файле `/etc/passwd`
+```bash
+sed -n 5p /etc/passwd
+```
+
+3. Используйте `awk` в конвейере, чтобы отфильтровать последний столбец в выводе `ps aux`
+```bash
+ps aux | awk '{ print $NF }'
+```
+
+4. Используйте `grep`, чтобы показать имена всех файлов в директории `/etc`, содержащих строки со словом `root`
+```bash
+grep '\<root\>' /etc/* 2>/dev/null
+```
+
+5. Показать все строки в файлах директории `/etc` состоящие из 3-х символов. Используйте `grep`
+```bash
+grep '^...$' /etc/* 2>/dev/null
+```
+
+6. Используйте `grep`, чтобы найти все файлы содержащие `alex`, но не `alexander`. Подсказка: создайте файл, в первой строке - `alex`, во второй `alexander`
+```bash
+cd
+echo -e "alex\nalexander" > testfile
+grep '\<alex\>' *
+```
+
+***
+
+**Глава 5. Подключение к серверу RHEL.**
+
+1. Из графической консоли перейдите в вирутальный терминал tty6.
+```bash
+sudo chvt 6
+```
+
+2. После выполнения 1-го задания авторизуйтесь как обычный пользователь и вернитесь в графический интерфейс, используя соответствующую команду.
+```bash
+chvt 1
+```
+
+3. Используя `ssh` подключитесь как `root` к `localhost`
+```bash
+ssh root@localhost
+```
+
+***
+
+**Глава 6. Управление пользователями и группами.**
+
+1. Настроить для всех новых пользователей: минимальная длина пароля - 6 символов, срок действия 90 дней.
+```bash
+vi /etc/login.defs
+
+PASS_MIN_LEN    6
+PASS_MAX_DAYS   90
+```
+
+2. В домашней директории всех новых пользователей создается пустой файл с именем `newfile`.
+```bash
+touch /etc/skel/newfile
+```
+
+3. Создать новых пользователей `anna`, `andrey`, `linda`, `lisa`.
+```bash
+useradd anna
+useradd andrey
+useradd linda
+useradd lisa
+```
+
+4. Установить пароль для `anna` и `andrey` - `password`, для `linda` и `lisa` - пароль отключить.
+```bash
+passwd andrey
+    или
+echo password | passwd --stdin anna
+
+passwd linda -l
+passwd lisa -l
+```
+
+5. Создать группы `profs`, `students` и назначить `anna` и `andrey` членами `profs`, а `linda` и `lisa` - членами группы `students`.
+```bash
+groupadd profs
+groupadd students
+
+usermod -aG profs anna
+usermod -aG profs andrey
+usermod -aG students linda
+usermod -aG students lisa
+```
+
+**Главал 7. Права доступа к файлам.**
+
+1. Запретить доступ другим пользователям (`others`) ко всем новым файлам пользователя Linda.
+в файл `/home/linda/.bashrc` добавить значение `umask 007`
+```bash
+vi /home/linda/.bash_profile
+```
+
+2. Создать структуру общих каталогов `/data/profs`, `/data/students` со следующими разрешениями:
+```bash
+mkdir -p /data/profs /data/students
+```
+   * члены групп имеют доступ на чтение и запись в эти директории, другие пользователи не имеют никаких разрешений;
+   ```bash
+   chmod g+w,o-rx /data/profs/
+   chmod g+w,o-rx /data/students/
+   ```
+   * члены групп могут редактировать все файлы создаваемые в этих директориях;
+   ```bash
+   chmod g+s /data/profs/
+   chmod g+s /data/students/
+   ```
+   * пользователи могут удалять только файлы , которые им принадлежат;
+   ```bash
+   chmod +t /data/profs/
+   chmod +t /data/students/
+   ```
+   * члены группы `profs` имеют доступ на чтение в `/data/students`
+   ```bash
+   setfacl -m d:g:profs:rx /data/students/
+   ```
+   * пользователь `anna` должна иметь возможность удалять файлы из директорий `/data/profs` и `/data/students`
+   ```bash
+   chown anna /data/profs
+   chown anna /data/students
+   ```
+
+***
+
+**Глава 8. Настройка сети.**
+
+1. Назначить серверу статический IP адрес в текущей подсети.
+*необходимо выяснить текущий IP*
+```bash
+ip a
+```
+если в строке с указанным адресом есть `global dynamic`, значит IP адрес получен от DHCP сервера.
+*для изменения сетевых настроек можно использовать утилиты `nmcli` или `nmtui`. Или вручную внести изменения в конфигурационный файл соответствующего подключения в директории `/etc/sysconfig/network-scripts/`*
+```bash
+nmcli connection add type ethernet ifname ens18 ipv4.addresses 192.168.10.11/24 ipv4.gateway 192.168.10.9 ipv4.dns 8.8.8.8
+nmcli connection show - чтобы увидеть название созданного подключения, пусть это будет ethernet-ens18
+nmcli connection up ethernet-ens18 - после создания нового подключения, его необходимо активировать
+```
+
+2. Назначить дополнительный IP адрес 10.0.0.10/24 на тот же сетевой интерфейс.
+*для решения этого задания можно использовать `nmcli` или `nmtui`*
+```bash
+nmcli connection modify ens18 +ipv4.addresses 10.0.0.10/24
+```
+
+3. Перезагрузить сервер и убедиться, что настройки сохранились.
+
+***
+
+**Глава 9. Управление процессами.**
+
+1. Запустить команду `dd if=/dev/zero of=/dev/null`. Перевести запущенный процесс в фоновый режим.
+```bash
+dd if=/dev/zero of=/dev/null
+Ctrl+Z
+bg
+```
+
+2. Запустить предыдущую команду 3 раза в фоновом режиме.
+```bash
+dd if=/dev/zero of=/dev/null &
+dd if=/dev/zero of=/dev/null &
+dd if=/dev/zero of=/dev/null &
+```
+
+3. Используя `jobs` получить информацию о запущенных фоновых процессах.
+```bash
+[root@co1 ~]# jobs
+[1]   Запущен          dd if=/dev/zero of=/dev/null &
+[2]   Запущен          dd if=/dev/zero of=/dev/null &
+[3]-  Запущен          dd if=/dev/zero of=/dev/null &
+[4]+  Запущен          dd if=/dev/zero of=/dev/null &
+```
+
+4. Из `top` изменить приоритет (`niceness`) одного из ранее запущенных `dd` на значение `-5`. Убедиться, что использование CPU этого процесса увеличилось.
+```bash
+top
+r
+```
+
+5. Остановить все запущенные процессы `dd` из командной строки.
+```bash
+[root@co1 ~]# ps aux | grep '\<dd'
+root       69261 51.6  0.0   7352   880 pts/1    R    15:29   0:24 dd if=/dev/zero of=/dev/null
+root       69262 50.2  0.0   7352   912 pts/1    R    15:29   0:23 dd if=/dev/zero of=/dev/null
+root       69263 49.2  0.0   7352   888 pts/1    R    15:29   0:23 dd if=/dev/zero of=/dev/null
+root       69264 49.6  0.0   7352   992 pts/1    R    15:29   0:22 dd if=/dev/zero of=/dev/null
+root       69266  0.0  0.0  12136  1100 pts/1    R+   15:29   0:00 grep --color=auto \<dd
+[root@co1 ~]# kill 69261 69262 69263 69264
+```
+или
+```bash
+killall dd
+```
+
+***
+
+**Глава 10. Управление программным обеспечением.**
+
+1. Убедитесь, что ваша система использует YUM репозиторий для установки основных пакетов ОС.
+```bash
+yum repolist
+```
+*в выводе должны быть перечислены используемые репозитории*
+
+2. Найдите пакет, содержащий sepolicy, и установите его.
+```bash
+[user@host ~]$ yum provides sepolicy
+Last metadata expiration check: 0:01:03 ago on Tue 31 Aug 2021 08:19:16 AM MSK.
+policycoreutils-devel-2.9-14.el8.i686 : SELinux policy core policy devel utilities
+Repo        : baseos
+Matched from:
+Filename    : /usr/bin/sepolicy
+
+policycoreutils-devel-2.9-14.el8.x86_64 : SELinux policy core policy devel utilities
+Repo        : baseos
+Matched from:
+Filename    : /usr/bin/sepolicy
+ 
+[user@host ~]$ yum install policycoreutils-devel.x86_64 
+```
+
+3. Установите предыдущую версию PHP.
+```bash
+[user@host ~]$ yum module list | grep php
+php                  7.2 [d]         common [d], devel, minimal               PHP scripting language                                                                                                                                                                                                           
+php                  7.3             common [d], devel, minimal               PHP scripting language                                                                                                                                                                                                           
+php                  7.4             common [d], devel, minimal               PHP scripting language    
+```
+```bash
+sudo yum module install php:7.3
+```
+***при установке обязательно указать `module` - `yum MODULE install`***
+
+4. Загрузите из репозитория пакет httpd не устанавливая, проверьте есть ли в этом пакете какие-либо скрипты.
+```bash
+yum --downloadonly httpd
+rpm -qp --scripts httpd-2.4.37-39.module_el8.4.0+778+c970deab.x86_64.rpm
+```
+
+***
+
diff --git a/readme.md b/readme.md
new file mode 100644
index 0000000..a29539c
--- /dev/null
+++ b/readme.md
@@ -0,0 +1,17 @@
+#### Здесь собраны лабораторные работы по разделам видеокурса
+#### Red Hat Certified System Administrator (RHCSA) Complete Video Course, 3rd Edition
+
+
+Год выпуска: 2019  
+Производитель: Pearson IT Certification  
+Сайт производителя: http://www.pearsonitcertification.com/store/red-hat-certified-system-administrato...te-9780135656525  
+Автор: Sander Van Vugt  
+Продолжительность: 16:10:23  
+Тип раздаваемого материала: Видеоурок  
+Язык: Английский  
+Описание:  
+Red Hat Certified System Administrator (RHCSA) Complete Video Course 3rd Edition has more than 16 hours of comprehensive video training–which includes whiteboard concept teaching, live CLI work, screencast teaching, and hands-on labs–so you have everything you need to study for and pass the RHCSA exam. This new edition of the best-selling RHCSA Complete Video Course, is fully updated for the RHEL 8 version of the exam.
+
+Overview
+
+The Red Hat Certified System Administrator (RHCSA) Complete Vide Course, 3rd edition is all new and fully updated for RHEL 8. This course is designed to teach you everything you need to know to pass the RHCSA exam. Every objective in the exam is discussed, along with in-depth lessons on complex topics, so they are not confusing. Each lesson ends with a lab, so you can dive into your own projects and see Red Hat in action; many of these labs mimic scenarios you might find on the exam, so you get the experience you need to practice for the exam. These labs also include video solutions, so you can also see in real-time how to work through the problems and figure out the best methods for working through each scenario.