Added tasks for useradd lesson.

pull/1/head
Vladimir Protsenko 2 years ago
parent c758643f51
commit f870e2cdce

@ -0,0 +1,200 @@
# Решения
### 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
$ kill -9 <pid>
$ usermod -L <user>
```

@ -10,16 +10,16 @@
Смените пароль пользователя `mike` командой `passwd` из под суперпользователя. Проверьте, что вы можете зайти под этим пользователем с заданным паролем.
### 4.
Измените в `/etc/default/useradd` оболочку по умолчанию на `/bin/sh`.
Измените в `/etc/default/useradd` оболочку по умолчанию на `/bin/bash`.
### 5.
Измените в `/etc/login.defs` `UID_MIN` на `10000`, `UMASK` на `077`.
### 6.
Создайте пользователя vera с заданным паролем и укажите, что нужно создать домашнюю директорию пользователя. При создании используйте заранее созданный пароль в зашифрованном виде. Для шифрования пароля используйте команду `openssl passwd -5 -stdin`. Проверьте номер идентификатора пользователя и путь к оболочке в файле `/etc/passwd`, хэш-пароль в `/etc/shadow`, атрибуты доступа к доамашней директории в `/home`.
Создайте пользователя vera с заданным паролем и укажите, что нужно создать домашнюю директорию пользователя. При создании используйте заранее созданный пароль в зашифрованном виде. Для шифрования пароля используйте команду `openssl passwd -5 -stdin`. Проверьте номер идентификатора пользователя и путь к оболочке в файле `/etc/passwd`, хэш-пароль в `/etc/shadow`, атрибуты доступа к домашней директории в `/home`.
### 7.
Поменяйте оболочку пользователя vera на `/bin/bash`.
Поменяйте оболочку пользователя vera на `/bin/sh`.
### 8.
Сконфигурируйте пользователя `mike` так, чтобы он мог перейти в суперпользователя, зная свой пароль. Справочная документация для этой задачи `man sudoers` и полезная команда `usermod`.
@ -40,7 +40,7 @@
Заблокируйте аккаунт пользователя `mike` командой `usermod` или модифицировав файл `/etc/shadow`.
### 14.
Настройте пользователя со своим именем на виртуальной машине `stud14`q. Зайдите под ним на какое-то время. Посмотрите кто ещё зашёл на машину. Проверьте кто заходил на эту машину ранее командой `last`.
Настройте пользователя со своим именем на виртуальной машине `stud14`. Зайдите под ним на какое-то время. Посмотрите кто ещё зашёл на машину. Проверьте кто заходил на эту машину ранее командой `last`.
### 15.
Сыграйте с коллегой в игру. Сначала зайдите на свои виртуальные машины. Зайдите друг к другу на виртуальную машину по ssh. Попробуйте первым отключить соседа от виртуальной машины.
@ -60,6 +60,7 @@
- usemod
- userdel
- passwd
- gpasswd
- chpasswd
- openssl passwd
- who

Loading…
Cancel
Save