You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

9.5 KiB

Решения

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>