diff --git a/06_user_management/solutions.md b/06_user_management/solutions.md new file mode 100644 index 0000000..920b37a --- /dev/null +++ b/06_user_management/solutions.md @@ -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 +$ usermod -L +``` \ No newline at end of file diff --git a/06_user_management/tasks.md b/06_user_management/tasks.md index 472d907..8e78b61 100644 --- a/06_user_management/tasks.md +++ b/06_user_management/tasks.md @@ -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