Хостинг SpaceWeb
Серверы Дизайн Сайты Безопасность Домены PHP Кейсы клиентов

Создание нового пользователя в Linux

В Linux все строится вокруг пользователей и их прав. Одни аккаунты нужны для повседневной работы, другие — для запуска сервисов и системных процессов. Если правильно организовать пользователей, можно сделать систему безопасной, удобной и предсказуемой в работе.

Прежде чем перейти к практическим командам, важно понять, какую роль играют пользователи в Linux и почему без них невозможно представить полноценную работу системы.

Зачем нужны пользователи в Linux

Работать всегда под одной учетной записью — не лучший вариант. У каждого пользователя могут быть свои задачи, права и ограничения. Важно разделять роли и создавать отдельные аккаунты, чтобы:

Способы создания нового пользователя в Linux

1. Простой новый пользователь

Чтобы добавить в систему нового пользователя, используется команда useradd. Самый простой вариант выглядит так:

sudo useradd demo_user

После выполнения в системе появится учетная запись с именем demo_user. Однако на этом этапе у нее еще не создан домашний каталог (обычно это /home/demo_user), не задан пароль для входа, а оболочка берётся по умолчанию из системных настроек

После добавления можно убедиться, что запись появилась в файле /etc/passwd:

grep demo_user /etc/passwd

Пример строки:

demo_user:x:1001:1001::/home/demo_user:/bin/sh

2. С домашней директорией и паролем

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

sudo useradd -m demo_user
sudo passwd demo_user

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

ls -ld /home/demo_user

Вывод будет примерно таким:

drwxr-x--- 2 demo_user demo_user 4096 Sep  4 21:07 /home/demo_user

3. С конкретным UID

Каждому пользователю в Linux назначается уникальный идентификатор (UID). Система сама выдает следующий свободный номер, но иногда нужно указать его вручную — например, для синхронизации пользователей на разных серверах или при переносе данных.

Для этого используется опция -u:

sudo useradd -u 1500 demo_user

Посмотреть UID можно в файле /etc/passwd:

grep demo_user /etc/passwd

В выводе вы получите:

demo_user:x:1500:1500::/home/demo_user:/bin/sh

Третье поле (1500) — это UID.

4. С привязкой к определенной группе

В Linux каждый пользователь связан с группой по умолчанию. Как правило, система автоматически создает одноименную группу, но при необходимости можно указать конкретный Group ID (GID). Он полезен, если нужно, чтобы несколько пользователей сразу оказались в одной общей группе или чтобы учетная запись работала с заранее заданными правами доступа. Для этого используется опция -g:

sudo useradd -g 1001 demo_user

Чтобы убедиться в корректной настройке, пропишите:

id demo_user

Пример вывода:

uid=1002(demo_user) gid=1001(devgroup) groups=1001(devgroup)

5. Без домашней директории

Не для всех учетных записей нужен собственный каталог в /home. Например, это касается системных пользователей, которые нужны только для запуска сервисов и не заходят в систему напрямую. В таком случае можно создать пользователя без домашней директории с помощью опции -M:

sudo useradd -M demo_user

6. С датой истечения действия аккаунта

В некоторых случаях важно, чтобы учетная запись была доступна только определенное время — например, для временных сотрудников, стажеров или тестовых пользователей. В Linux это можно сделать с помощью ключа -e, задав дату в формате ГГГГ-ММ-ДД.

Пример:

sudo useradd -e 2025-12-31 demo_user

Таким образом, пользователь будет существовать до 31 декабря 2025.

Посмотреть текущую дату истечения можно через команду chage:

sudo chage -l demo_user

Пример вывода:

Last password change                                    : Sep 04, 2025
Password expires                                        : never
Password inactive                                      : never
Account expires                                        : Dec 31, 2025
Minimum number of days between password change         : 0
Maximum number of days between password change         : 99999
Number of days of warning before password expires      : 7

Здесь видно, что аккаунт demo_user перестанет работать 31 декабря 2025 года.

7. С комментарием или описанием

Ключ -c позволяет добавить к учетной записи описание, например должность, отдел или любую другую заметку. Это помогает администраторам быстро понимать, для чего создан пользователь.

sudo useradd -c "Тестовый аккаунт для разработки" demo_user

Комментарий сохраняется в файле /etc/passwd и отображается рядом с данными пользователя.

Выполните:

grep demo_user /etc/passwd

Пример результата:

demo_user:x:1001:1001:Тестовый аккаунт для разработки:/home/demo_user:/bin/sh

8. С другой оболочкой

С помощью ключа -s можно указать, какая оболочка будет использоваться при входе. По умолчанию это обычно /bin/bash, но можно выбрать, например, /bin/sh:

sudo useradd -s /bin/sh demo_user

Так при авторизации у пользователя demo_user запустится именно /bin/sh. Узнать текущую оболочку можно так:

grep demo_user /etc/passwd

Пример строки:

demo_user:x:1005:1005::/home/demo_user:/bin/sh

9. С незашифрованным паролем

Опция -p позволяет задать пароль прямо при создании пользователя. Но есть нюанс: система ожидает не сам пароль, а хэш, сгенерированный функцией crypt(). Если ввести обычное слово, оно сохранится в /etc/shadow как незашифрованный текст — это крайне небезопасно и используется только в тестовых целях.

Пример:

sudo useradd -p test_password demo_user

После этого в файле /etc/shadow у пользователя demo_user появится строка с паролем test_password в незашифрованном виде.

Посмотреть запись можно так:

sudo grep demo_user /etc/shadow

Пример строки:

demo_user:test_password:19612:0:99999:7:::

Здесь видно, что вместо зашифрованного хэша записан открытый пароль.

Важные файлы и каталоги

В Linux данные о пользователях, группах и их активности распределены по нескольким файлам и каталогам. Администратору стоит знать их назначение, чтобы эффективно управлять системой и отслеживать события.

Файл / каталог Назначение
/etc/passwd Базовая информация о пользователях: имя, UID, GID, домашний каталог и оболочка.
/etc/shadow Зашифрованные пароли и дополнительные параметры (срок действия пароля, дата последней смены и т. д.).
/etc/group Данные о группах: имя, GID и список пользователей в каждой группе.
/etc/gshadow Секретная информация о группах: пароли, администраторы и участники.
/etc/default/useradd Конфигурация по умолчанию для команды useradd (оболочка, директория и другие параметры).
/etc/skel/ Каталог-шаблон: его содержимое копируется в домашнюю директорию нового пользователя.
/etc/login.defs Общие настройки учетных записей: требования к паролям, сроки действия аккаунтов, политика безопасности.
/var/log/wtmp Лог всех входов и выходов пользователей, используется для просмотра истории сеансов (например, через команду last).
/var/run/utmp Хранит информацию о текущих активных пользователях и их сеансах (команды who, w).
/var/log/lastlog Содержит данные о последнем входе каждого пользователя (команда lastlog).
/var/log/faillog Фиксирует неудачные попытки входа в систему, используется для анализа безопасности.

Заключение

Управление пользователями в Linux открывает гораздо больше возможностей, чем простое создание учетных записей. Администратор может заранее продумать, где будут храниться личные файлы сотрудника, какой идентификатор закрепить за его аккаунтом, какие группы сделать доступными и как ограничить срок действия учетной записи.

В итоге система получает четкое разделение ролей, защита от случайных ошибок и потенциальных угроз становится сильнее, а пользователи работают в комфортной и предсказуемой среде.

Перейти на оригинал