В данной инструкции рассказывается о работе с пользователями Linux через терминал (с применением командной строки).
Просмотр
Создание
Редактирование
Удаление
Блокировка
Работа с группами
Список пользователей
Работа с паролями
Примеры
Решение возможных проблем
1. Список пользователей можно посмотреть в файле /etc/passwd командой:
less /etc/passwd
Данная команда вернет всех пользователей, в том числе служебных. Для отображения только учетных записей пользователей можно ввести команду:
users
2. Проверить существование пользователя и увидеть его идентификатор можно с помощью команды id:
id username
Мы должны увидеть что-то на подобие:
uid=1001(username) gid=1001(username) groups=1001(username),27(sudo)
* учетная запись username существует, она находится в основной группе username и дополнительной sudo . Ее идентификатор 1001 .
3. Также мы можем получить строку о пользователе из файла /etc/passwd :
getent passwd username
Мы увидим что-то такое:
username:x:1001:1001::/home/username:/bin/sh
* наш пользовател username имеют идентификатор пользователя и группы 1001 , его домашняя директория /home/username , командная оболочка /bin/sh .
Синтаксис:
useradd <имя пользователя> [опции]
* опции не являются обязательными при создании пользователя.
Пример:
useradd remontka
* в данном примере создается учетная запись remontka .
Для учетной записи стоит сразу создать пароль:
passwd remontka
* после ввода, система попросит ввести пароль дважды.
Ключ | Описание и примеры |
---|---|
-b | Задает базовый каталог для домашнего каталога useradd remontka -b /var/home |
-c | Создает комментарий для описания учетной записи useradd remontka -c «Пользователя для управления системой» |
-d | Полный путь к домашнему каталогу пользователя useradd remontka -d /home/newuser |
-D | Позволяет показать или изменить настройки по умолчанию, которые будут применяться при последующем создании пользователей useradd remontka -Ds /bin/bash |
-e | Дата, после которой учетная запись устареет. useradd remontka -e 2017-12-31 |
-f | Число дней, после которого учетная запись с устаревшим паролем будет заблокирована useradd remontka -f 0 |
-g | Задает основную группу useradd remontka -g altternativegroup |
-G | Задает дополнительные группы useradd remontka -G wheel |
-k | Путь к источнику скелета (файлы с шаблонами для нового пользователя) useradd remontka -k /var/skel |
-m | При создании пользователя создать домашний каталог useradd remontka -m |
-M | Не создавать домашний каталог useradd remontka -M |
-N | Не создавать основную группу с таким же именем, как у пользователя useradd remontka -N |
-o | Разрешает создание учетной записи с повторяющимся UID useradd remontka -u 15 -o |
-p | Задает пароль useradd remontka -p pass |
-r | Системная учетная запись (без домашнего каталога и с идентификаторами в диапазоне SYS_UID_MIN — SYS_UID_MAX из файла /etc/login.defs) useradd remontka -r |
-R | Каталог, в который выполняется chroot useradd remontka -R /var/chroot/home |
-s | Путь до оболочки командной строки useradd remontka -s /bin/csh |
-u | Задает UID useradd remontka -u 666 |
-U | Имя группы будет таким же, как у пользователя useradd remontka -U |
Актуальный список ключей можно получить командой useradd -h .
Синтаксис:
usermod <имя пользователя> [опции]
Пример:
usermod remontka -G wheel
* эта команда добавит пользователя remontka в группу wheel
Синтаксис:
userdel <имя пользователя> [опции]
Пример:
userdel remontka
1. Можно заблокировать пользователя, не удаляя его из системы:
usermod -L <имя пользователя>
Пример:
usermod -L remontka
Чтобы разблокировать пользователя, вводим:
usermod -U <имя пользователя>
2. В некоторых системах Linux может использоваться pam-модуль tally. Он осуществляет подсчет количества неудачных попыток входа в систему. Также он может блокировать доступ при превышении данного количества.
Чтобы посмотреть счетчик для пользователя, вводим команду:
pam_tally2 —user=admin
В версия постарея:
pam_tally —user=admin
Для сброса счетчика (и блокировки, если она есть) вводим:
pam_tally2 —user=admin —reset
1. Добавление группы:
groupadd <группа> [опции]
2. Редактирование:
groupmod <группа> [опции]
3. Удаление группы:
groupdel <группа> [опции]
4. Добавление пользователя в группу:
Выполняется через команду usermod:
usermod -a -G <группы через запятую> <пользователь>
5. Удаление из группы:
Выполняется с помощью gpasswd:
gpasswd —delete <пользователь> <группы через запятую>
Посмотреть список пользователей можно в файле /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:
getent passwd
Можно найти пользователя по идентификатору:
getent passwd 1000
Получить список не системных пользователей:
getent passwd {1000..60000}
Получить только список логинов не системных учетных записей:
getent passwd {1000..60000} | awk -F: ‘{ print $1}’
Рассмотрим отдельно некоторые примеры работы с паролями пользователей.
1. Смена пароля для текущего пользователя:
passwd
2. Смена пароля для конкретного пользователя:
passwd remontka
* в данном случае замена будет выполняться для пользователя remontka .
3. Хэш пароля.
Пароли пользователей хранятся в файле /etc/shadow в виде хэша. Чтобы самим сгенерировать данный хэш (может понадобиться для ручного создания записи или с помощью cloud-init), выполняем команду:
mkpasswd -m sha-512
Рассмотрим несколько утилит, с помощью которых можно управлять учетными записями в Linux.
1. Создать пользователя, добавить его в группу и создать домашнюю директорию:
useradd remontka -G printer -m
2. Создать учетную запись с возможностью получения привилений суперпользователя (командой sudo su ):
useradd remontka -G wheel -m
* для систем RPM.
useradd remontka -G sudo -m
* для систем DEB.
3. Создать пользователя с определенными UID и GID (соответственно идентификаторы пользователя и группы):
useradd remontka -u 900 -g 950
* группа с используемым идентификатором (в данном примере 950 ) уже должна быть создана заранее с использованием команды groupadd .
4. Создать пользователя и указать путь к домашней директории:
useradd remontka -d /home/newremontka
5. Создать учетную запись без возможности входа в систему:
useradd remontka -s /sbin/nologin
1. Потребовать сменить пароль при следующем входе в систему:
chage -d 0 remontka
2. Поменять пользователю основную группу:
usermod remontka -g kdonewgroup
3. Задать пользователю дополнительную группу с правами root:
usermod remontka -G sudo
4. Добавить пользователя в группу:
usermod -a -G group remontka
* в данном примере мы добавим пользователя remontka в группу group .
5. Сменить домашнюю директорию:
usermod -d /var/www/remontka remontka
* данной командой мы меняем для пользователя remontka домашнюю директорию на /var/www/remontka .
1. Автоматическая блокировка учетной записи:
chage -E 2023-05-01 remontka
* данной командой мы указали, что учетная запись remontka перестанет действовать после 1 мая 2023 года.
Чтобы посмотреть информацию о дате окончания срока действия учетной записи вводим:
chage -l remontka
Сделать учетную запись бессрочной:
chage -E -1 remontka
При попытке получить привилении командой:
sudo su
… система возвращает ошибку:
sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set
Причина: эта ошибка возникает, когда утилита sudo не имеет правильных прав доступа на вашей системе. В частности, она происходит, когда владелец файла /usr/bin/sudo не является пользователем root или когда установлен неправильный бит setuid на файле.
Решение: убедитесь, что вы вошли в систему с учетной записью, имеющей права администратора. Это можно сделать, войдя напрямую под пользователем root.
Выполняем команду, чтобы проверить права файла sudo:
ls -l /usr/bin/sudo
Если владелец не является пользователем root, выполните следующую команду, чтобы изменить владельца файла:
chown root:root /usr/bin/sudo
Убедитесь, что установлен правильный бит setuid на файле sudo, выполнив следующую команду:
chmod u+s /usr/bin/sudo
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…