Работа с учётными записями пользователями в Linux

Автор: | 15/03/2024

1. Список пользователей можно посмотреть в файле /etc/passwd командой:

Данная команда вернет всех пользователей, в том числе служебных. Для отображения только учетных записей пользователей можно ввести команду:

2. Проверить существование пользователя и увидеть его идентификатор можно с помощью команды id:

Мы должны увидеть что-то на подобие:

* учетная запись username существует, она находится в основной группе username и дополнительной sudo. Ее идентификатор 1001.

3. Также мы можем получить строку о пользователе из файла /etc/passwd:

Мы увидим что-то такое:

* наш пользователь username имеет идентификатор пользователя и группы 1001, его домашняя директория /home/username, командная оболочка /bin/sh.

Синтаксис:

* опции не являются обязательными при создании пользователя.

Пример:

* в данном примере создается учетная запись user.

Для учетной записи стоит сразу создать пароль:

* ОС попросит дважды ввести пароль.

Ключи (опции)
КлючОписание и примеры
-bЗадает базовый каталог для домашнего каталога
useradd user -b /var/home
-cСоздает комментарий для описания учетной записи
useradd user -c «Новый пользователь»
-dПолный путь к домашнему каталогу пользователя
useradd user -d /home/newuser
-DПозволяет показать или изменить настройки по умолчанию, которые будут применяться при последующем создании пользователей
useradd user -Ds /bin/bash
-eДата, после которой учетная запись устареет.
useradd user -e 2017-12-31
-fЧисло дней, после которого учетная запись с устаревшим паролем будет заблокирована
useradd user -f 0
-gЗадает основную группу
useradd user -g altternativegroup
-GЗадает дополнительные группы
useradd user -G wheel
-kПуть к источнику скелета (файлы с шаблонами для нового пользователя)
useradd user -k /var/skel
-mПри создании пользователя создать домашний каталог
useradd user -m
-MНе создавать домашний каталог
useradd user -M
-NНе создавать основную группу с таким же именем, как у пользователя
useradd user -N
-oРазрешает создание учетной записи с повторяющимся UID
useradd user -u 15 -o
-pЗадает пароль
useradd user -p pass
-rСистемная учетная запись (без домашнего каталога и с идентификаторами в диапазоне SYS_UID_MIN — SYS_UID_MAX из файла /etc/login.defs)
useradd user -r
-RКаталог, в который выполняется chroot
useradd user -R /var/chroot/home
-sПуть до оболочки командной строки
useradd user -s /bin/csh
-uЗадает UID
useradd user -u 666
-UИмя группы будет таким же, как у пользователя
useradd user -U

Актуальный список ключей можно получить командой useradd -h.

Синтаксис:

Пример:

* эта команда добавит пользователя user в группу wheel

Синтаксис:

Пример:

1. Можно заблокировать пользователя, не удаляя его из системы:

Пример:

usermod -L user

Чтобы разблокировать пользователя, вводим:

2. В некоторых системах Linux может использоваться pam-модуль tally. Он осуществляет подсчет количества неудачных попыток входа в систему. Также он может блокировать доступ при превышении данного количества.

Чтобы посмотреть счетчик для пользователя, вводим команду:

В версии постарше:

Для сброса счетчика (и блокировки, если она есть) вводим:

1. Добавление группы:

2. Редактирование:

3. Удаление группы:

4. Добавление пользователя в группу:

Выполняется через команду usermod:

5. Удаление из группы:

Выполняется с помощью gpasswd:

Посмотреть список пользователей можно в файле /etc/passwd:

cat /etc/passwd

Мы увидим что-то на подобие:

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
...

Как правило, большая часть данных пользователей является системными — их UID меньше 1000 и больше 60000.

Более функциональная команда для отображения содержимого файла passwd — getent:

Можно найти пользователя по идентификатору:

Получить список не системных пользователей:

Получить только список логинов не системных учетных записей:

Рассмотрим отдельно некоторые примеры работы с паролями пользователей.

1. Смена пароля для текущего пользователя:

2. Смена пароля для конкретного пользователя:

* в данном случае замена будет выполняться для пользователя user.

3. Хэш пароля.

Пароли пользователей хранятся в файле /etc/shadow в виде хэша. Чтобы самим сгенерировать данный хэш (может понадобиться для ручного создания записи или с помощью cloud-init), выполняем команду:

Рассмотрим несколько утилит, с помощью которых можно управлять учетными записями в Linux.

useradd

1. Создать пользователя, добавить его в группу и создать домашнюю директорию:

2. Создать учетную запись с возможностью получения привилений суперпользователя (командой sudo su):

* для систем RPM.

* для систем DEB.

3. Создать пользователя с определенными UID и GID (соответственно идентификаторы пользователя и группы):

* группа с используемым идентификатором (в данном примере 950) уже должна быть создана заранее с использованием команды groupadd.

4. Создать пользователя и указать путь к домашней директории:

5. Создать учетную запись без возможности входа в систему:

usermod

1. Потребовать сменить пароль при следующем входе в систему:

2. Поменять пользователю основную группу:

3. Задать пользователю дополнительную группу с правами root:

4. Добавить пользователя в группу:

* в данном примере мы добавим пользователя user в группу group.

5. Сменить домашнюю директорию:

* данной командой мы меняем для пользователя user домашнюю директорию на /var/www/user.

chage

1. Автоматическая блокировка учетной записи:

* данной командой мы указали, что учетная запись user перестанет действовать после 1 мая 2023 года.

Чтобы посмотреть информацию о дате окончания срока действия учетной записи вводим:

Сделать учетную запись бессрочной:

sudo must be owned by uid 0 and have the setuid bit set

При попытке получить привилении командой:

… система возвращает ошибку:

Причина: эта ошибка возникает, когда утилита sudo не имеет правильных прав доступа на вашей системе. В частности, она происходит, когда владелец файла /usr/bin/sudo не является пользователем root или когда установлен неправильный бит setuid на файле.

Решение: убедитесь, что вы вошли в систему с учетной записью, имеющей права администратора. Это можно сделать, войдя напрямую под пользователем root.

Выполняем команду, чтобы проверить права файла sudo:

Если владелец не является пользователем root, выполните следующую команду, чтобы изменить владельца файла:

chown root:root /usr/bin/sudo

Убедитесь, что установлен правильный бит setuid на файле sudo, выполнив следующую команду:

https://www.dmosk.ru/miniinstruktions.php?mini=linux-users