master
artemdolgiy 2021-09-01 09:11:00 +03:00
commit da58cfe5ac
3 changed files with 430 additions and 0 deletions

111
labs.md Normal file
View File

@ -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 не устанавливая, проверьте есть ли в этом пакете какие-либо скрипты.
***

302
labs_solution.md Normal file
View File

@ -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
```
***

17
readme.md Normal file
View File

@ -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 trainingwhich includes whiteboard concept teaching, live CLI work, screencast teaching, and hands-on labsso 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.