|
|
|
|
# Решения
|
|
|
|
|
|
|
|
|
|
### 1.
|
|
|
|
|
Создайте пользователя mike. При создании задайте в качестве оболочки `/bin/bash`. Создайте домашнюю директорию вручную для mike, в `/home/mike`. Смените владельца командой `chown mike:mike /home/mike`.
|
|
|
|
|
```
|
|
|
|
|
$ sudo useradd mike --shell /bin/bash
|
|
|
|
|
$ sudo su - mike
|
|
|
|
|
su: warning: cannot change directory to /home/mike: No such file or directory
|
|
|
|
|
```
|
|
|
|
|
Зайти под пользователем mike теперь можно. Без домашней директории не будет сохраняться история комманд, а также нельзя настроить
|
|
|
|
|
оболочку. Например, активировать пользовательские псевдонимы при входе.
|
|
|
|
|
```
|
|
|
|
|
$ sudo mkdir /home/mike
|
|
|
|
|
$ sudo su - mike
|
|
|
|
|
$ touch ~/1
|
|
|
|
|
touch: cannot touch '/home/mike/1': Permission denied
|
|
|
|
|
$ sudo chown mike:mike /home/mike
|
|
|
|
|
$ touch ~/1
|
|
|
|
|
```
|
|
|
|
|
В этом случае домашняя папка пользователя не будет содержать скрытые конфигурационные файлы, которые копируются из директории
|
|
|
|
|
`/etc/skel/` (переменная SKEL в `/etc/default/useradd`) при вызове useradd с флагом `--create-home` .
|
|
|
|
|
|
|
|
|
|
### 2.
|
|
|
|
|
Деактивируйте аккаунт stud, поменяв оболочку на `/sbin/nologin`. В соседнем окне, проверьте, что залогиниться вы не можете. Попробуйте варианты через `sudo su -`, `su -`, по ssh. Верните оболочку в прежнее значение.
|
|
|
|
|
```
|
|
|
|
|
$ sudo usermod --shell /sbin/nologin stud
|
|
|
|
|
$ ssh s15
|
|
|
|
|
Linux stud15 5.10.0-16-amd64 #1 SMP Debian 5.10.127-1 (2022-06-30) x86_64
|
|
|
|
|
|
|
|
|
|
The programs included with the Debian GNU/Linux system are free software;
|
|
|
|
|
the exact distribution terms for each program are described in the
|
|
|
|
|
individual files in /usr/share/doc/*/copyright.
|
|
|
|
|
|
|
|
|
|
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
|
|
|
|
|
permitted by applicable law.
|
|
|
|
|
Last login: Thu Sep 8 22:23:46 2022 from 46.0.144.27
|
|
|
|
|
This account is currently not available.
|
|
|
|
|
Connection to 193.32.63.185 closed.
|
|
|
|
|
$ su --login stud
|
|
|
|
|
This account is currently not available.
|
|
|
|
|
stud@stud15:~$ sudo su --login stud
|
|
|
|
|
This account is currently not available.
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 3.
|
|
|
|
|
Смените пароль пользователя `mike` командой `passwd` из под суперпользователя. Проверьте, что вы можете зайти под этим пользователем с заданным паролем.
|
|
|
|
|
```
|
|
|
|
|
$ sudo passwd mike
|
|
|
|
|
551e-2022
|
|
|
|
|
$ su - mike
|
|
|
|
|
Password: 551e-2022
|
|
|
|
|
mike@stud15:~$
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 4.
|
|
|
|
|
Измените в `/etc/default/useradd` оболочку по умолчанию на `/bin/bash`.
|
|
|
|
|
```
|
|
|
|
|
$ cat /etc/default/useradd | grep ^SHELL
|
|
|
|
|
SHELL=/bin/bash
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 5.
|
|
|
|
|
Измените в `/etc/login.defs` `UID_MIN` на `10000`, `UMASK` на `077`.
|
|
|
|
|
```
|
|
|
|
|
$ cat /etc/login.defs | grep '^\(UID_MIN\|UMASK\)'
|
|
|
|
|
UMASK 077
|
|
|
|
|
UID_MIN 10000
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 6.
|
|
|
|
|
Создайте пользователя vera с заданным паролем и укажите, что нужно создать домашнюю директорию пользователя. При создании используйте заранее созданный пароль в зашифрованном виде. Для шифрования пароля используйте команду `openssl passwd -5 -stdin`. После создания проверьте номер идентификатора пользователя и путь к оболочке в файле `/etc/passwd`, хэш-пароль в `/etc/shadow`, атрибуты доступа к домашней директории в `/home`.
|
|
|
|
|
```
|
|
|
|
|
$ echo 'Vera-@)$-2022' | openssl passwd -5 -stdin
|
|
|
|
|
$5$zW1zNyUcDCT86mmZ$khDXsCyzBJ/5WeZN9AaARXBdlQaMnVZUzj/WXRDffo5
|
|
|
|
|
$ sudo useradd vera -p '$5$zW1zNyUcDCT86mmZ$khDXsCyzBJ/5WeZN9AaARXBdlQaMnVZUzj/WXRDffo5' --create-home
|
|
|
|
|
$ ls -l /home/
|
|
|
|
|
total 12
|
|
|
|
|
drwxr-xr-x 2 mike mike 4096 сен 8 22:00 mike
|
|
|
|
|
drwxr-xr-x 11 stud stud 4096 сен 8 23:33 stud
|
|
|
|
|
drwx------ 2 vera vera 4096 сен 8 23:47 vera
|
|
|
|
|
$ ls /home/vera
|
|
|
|
|
ls: cannot open directory '/home/vera': Permission denied
|
|
|
|
|
$ grep vera /etc/passwd
|
|
|
|
|
vera:x:10000:10000::/home/vera:/bin/bash
|
|
|
|
|
$ grep mike /etc/passwd
|
|
|
|
|
mike:x:1001:1001::/home/mike:/bin/bash
|
|
|
|
|
$ sudo grep vera /etc/shadow
|
|
|
|
|
vera:$5$zW1zNyUcDCT86mmZ$khDXsCyzBJ/5WeZN9AaARXBdlQaMnVZUzj/WXRDffo5:19243:0:99999:7:::
|
|
|
|
|
$ su - vera
|
|
|
|
|
Password: Vera-@)$-2022
|
|
|
|
|
vera@stud15:~$
|
|
|
|
|
$ ls -la
|
|
|
|
|
total 20
|
|
|
|
|
drwx------ 2 vera vera 4096 сен 8 23:47 .
|
|
|
|
|
drwxr-xr-x 5 root root 4096 сен 8 23:47 ..
|
|
|
|
|
-rw-r--r-- 1 vera vera 220 мар 27 22:40 .bash_logout
|
|
|
|
|
-rw-r--r-- 1 vera vera 3526 мар 27 22:40 .bashrc
|
|
|
|
|
-rw-r--r-- 1 vera vera 807 мар 27 22:40 .profile
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Мы видим, что никто кроме пользователя vera не имеет доступа к домашней директории. Идентификатор пользователя vera после создания предыдущего пользователя mike увеличился сразу до значения 10000, вместо 1002. Пароль в зашифрованном виде был сохранён в файл `/etc/shadow`. В домашней папке пользователя vera появилось три файла из `/etc/skel`.
|
|
|
|
|
|
|
|
|
|
### 7.
|
|
|
|
|
Поменяйте оболочку пользователя vera на `/bin/sh`.
|
|
|
|
|
```
|
|
|
|
|
$ sudo usermod --shell /bin/sh vera
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 8.
|
|
|
|
|
Сконфигурируйте пользователя `mike` так, чтобы он мог перейти в суперпользователя, зная свой пароль. Справочная документация для этой задачи `man sudoers` и полезная команда `usermod`.
|
|
|
|
|
```
|
|
|
|
|
$ sudo usermod -G sudo mike
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 9.
|
|
|
|
|
Смените пароль пользователя `mike` командой `chpasswd`.
|
|
|
|
|
```
|
|
|
|
|
$ echo 'mike:Mike-@)$-2022' | sudo chpasswd
|
|
|
|
|
$ su - mike
|
|
|
|
|
Password:
|
|
|
|
|
mike@stud15:~$
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Обратите внимание на одинарные кавычки. При использовании двойных кавычек bash интерпретирует специальные символы, такие как $, что привело бы к установке неверного пароля.
|
|
|
|
|
|
|
|
|
|
### 10.
|
|
|
|
|
Создайте и удалите пользователя `dummy`.
|
|
|
|
|
```
|
|
|
|
|
$ useradd dummy
|
|
|
|
|
$ userdel dummy
|
|
|
|
|
$ grep dummy /etc/passwd
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 11.
|
|
|
|
|
Создайте группу `docker` и добавьте в неё пользователей `mike` и `vera`.
|
|
|
|
|
```
|
|
|
|
|
$ grep mike /etc/group
|
|
|
|
|
sudo:x:27:stud,mike
|
|
|
|
|
mike:x:10000:
|
|
|
|
|
$ sudo groupadd docker
|
|
|
|
|
$ sudo usermod -a -G docker mike
|
|
|
|
|
$ sudo gpasswd -a vera docker
|
|
|
|
|
$ grep -E 'mike|vera' /etc/group
|
|
|
|
|
sudo:x:27:stud,mike
|
|
|
|
|
mike:x:10000:
|
|
|
|
|
vera:x:10001:
|
|
|
|
|
docker:x:10002:vera,mike
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 12.
|
|
|
|
|
Удалите пользователя `mike` из группы `docker`.
|
|
|
|
|
|
|
|
|
|
Первый вариант использовать `gpasswd`.
|
|
|
|
|
```
|
|
|
|
|
$ gpasswd -d mike docker
|
|
|
|
|
```
|
|
|
|
|
Второй вариант в `usermod -G` указать только те группы, в который пользователь должен находиться.
|
|
|
|
|
```
|
|
|
|
|
$ sudo usermod -G sudo mike
|
|
|
|
|
```
|
|
|
|
|
Третий вариант удалить пользователя на строке группы из списка после последнего `:` в файле `/etc/group`.
|
|
|
|
|
|
|
|
|
|
### 13.
|
|
|
|
|
Заблокируйте аккаунт пользователя `mike` командой `usermod` или модифицировав файл `/etc/shadow`.
|
|
|
|
|
```
|
|
|
|
|
$ sudo usermod -L mike
|
|
|
|
|
$ sudo grep mike /etc/shadow
|
|
|
|
|
mike:!$y$j9T$gqE0awjHPMO9IqeWOEdVp0$y5KrjzQfqoOyLy5j68kEte16MvKAs1Rl.IMeIohAnHC:19243:0:99999:7:::
|
|
|
|
|
$ su - mike
|
|
|
|
|
Password:
|
|
|
|
|
su: Authentication failure
|
|
|
|
|
```
|
|
|
|
|
Знак `!` перед хэшем пароля означает, что аккаунт заморожен.
|
|
|
|
|
|
|
|
|
|
### 14.
|
|
|
|
|
Настройте пользователя со своим именем на виртуальной машине `stud14`. Зайдите под ним на какое-то время. Посмотрите кто ещё зашёл на машину. Проверьте кто заходил на эту машину ранее командой `last`.
|
|
|
|
|
```
|
|
|
|
|
stud@stud14:~$ who
|
|
|
|
|
stud pts/1 2022-09-09 00:43 (46.0.124.17)
|
|
|
|
|
stud@stud14:~$ last -n 10
|
|
|
|
|
stud pts/1 46.0.124.17 Fri Sep 9 00:43 still logged in
|
|
|
|
|
stud pts/4 87.229.245.190 Thu Sep 8 19:04 - 19:05 (00:00)
|
|
|
|
|
stud pts/3 87.229.245.190 Thu Sep 8 19:04 - 21:25 (02:20)
|
|
|
|
|
stud pts/0 87.229.245.190 Thu Sep 8 19:04 - 19:06 (00:02)
|
|
|
|
|
stud pts/3 87.229.245.190 Thu Sep 8 18:59 - 19:04 (00:04)
|
|
|
|
|
stud pts/3 87.229.245.190 Thu Sep 8 18:59 - 18:59 (00:00)
|
|
|
|
|
stud pts/3 87.229.245.190 Thu Sep 8 18:57 - 18:57 (00:00)
|
|
|
|
|
tim pts/3 87.229.245.190 Thu Sep 8 18:42 - 18:49 (00:06)
|
|
|
|
|
stud pts/7 87.229.245.190 Thu Sep 8 18:41 - 18:57 (00:16)
|
|
|
|
|
stud pts/3 87.229.245.190 Thu Sep 8 18:40 - 18:42 (00:01)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 15.
|
|
|
|
|
Сыграйте с коллегой в игру. Сначала зайдите на свои виртуальные машины. Зайдите друг к другу на виртуальную машину по ssh. Попробуйте первым отключить соседа от виртуальной машины.
|
|
|
|
|
```
|
|
|
|
|
$ who -u
|
|
|
|
|
$ sudo kill -9 <pid>
|
|
|
|
|
$ sudo usermod -L <user>
|
|
|
|
|
```
|