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`
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`.
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/`*
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` из командной строки.
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See journald.conf(5) for details.
[Journal]
#Storage=auto
#Compress=yes
#Seal=yes
***
```
*в данном случае нас интересует только строка Storage, строки ниже не показаны. Значение `auto` говорит о том, что логи будут сохранятся в папку `/var/log/journal`, при условии, что папка существует. Убирать символ `#` в начале не нужно, т.к. значение auto используется по-умолчанию.*
*Для выполнения этой лабораторной работы необходимо создать дополнительный жёсткий диск в вашей виртуальной машине размером 10 ГБ.*
1. Создать основной раздел размером 1ГиБ. Отформатировать его в Ext4 и задать постоянную точку монтирования в `/mounts/files`, используя его UUID.
```bash
sudo parted /dev/sdb
mklabel gpt
mkpart
Start? 2048
End? 3072
```
2. Создать расширенный раздел, включающий все оставшееся дисковое пространство. В этом разделе создать раздел XFS размером 5OO МиБ с постоянной точкой монтирования в `/mounts/xfs`, используя метку `myxfs`.
3. Создать раздел подкачки 5OO МиБ и активировать его. После перезагрузки он должен быть доступен.