Создание нового пользователя в 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 открывает гораздо больше возможностей, чем простое создание учетных записей. Администратор может заранее продумать, где будут храниться личные файлы сотрудника, какой идентификатор закрепить за его аккаунтом, какие группы сделать доступными и как ограничить срок действия учетной записи.
В итоге система получает четкое разделение ролей, защита от случайных ошибок и потенциальных угроз становится сильнее, а пользователи работают в комфортной и предсказуемой среде.
Перейти на оригинал