Введение / Зачем это нужно
Управление пользователями — базовая задача системного администратора или владельца VPS/сервера. Правильная настройка учетных записей обеспечивает безопасность, организацию доступа и изоляцию процессов. Этот гайд покажет, как выполнять ключевые операции: создание, модификация и удаление пользователей в Linux, а также работу с группами и правами. После выполнения вы сможете грамотно администрироватьAccounts на большинстве дистрибутивов (Ubuntu, Debian, CentOS, Rocky Linux).
Требования / Подготовка
- Доступ к терминалу с правами
rootили пользователем, входящим в группуsudo. - Понимание базовых команд (
ls,cat,grep). - Активная система с установленными стандартными утилитами (
adduser,useradd,usermod,passwd). Они есть в любом стандартном дистрибутиве. - Чёткое понимание, какую учетную запись вы создаёте: обычного пользователя, сервисного аккаунта для приложения или администратора.
Шаг 1: Создание пользователя: adduser vs useradd
В Linux есть две основные утилиты для создания пользователя.
Вариант A (рекомендуется для новичков): adduser
Это интерактивный скрипт-обёртка, который задаёт все нужные вопросы и выполняет настройки автоматически.
sudo adduser newuser
Система попросит:
- Задать пароль (дважды).
- Указать полное имя, номер комнаты, рабочий телефон (это поля GECOS, можно пропускать, нажав Enter).
- Подтвердить корректность введённых данных.
Результат: создается пользователь newuser, его домашний каталог /home/newuser, основная группа с таким же именем, оболочка по умолчанию (обычно /bin/bash).
Вариант B (для автоматизации/скриптов): useradd
Низкоуровневая утилита, не задающая вопросов. Нужно указать параметры явно.
# Создать пользователя с домашним каталогом и оболочкой bash
sudo useradd -m -s /bin/bash newuser
# Установить пароль отдельной командой
sudo passwd newuser
Ключевые флаги:
-m— создать домашний каталог (/home/newuser).-s /bin/bash— указать логическую оболочку (может быть/bin/zsh,/usr/sbin/nologinдля сервисных аккаунтов).-c "Comment"— добавить комментарий (например, полное имя).-G <group1,group2>— сразу добавить в дополнительные группы.
⚠️ Важно: При использовании
useraddбез флага-mдомашний каталог не создаётся автоматически. Это частая причина ошибок входа.
Шаг 2: Настройка пароля и дополнительных параметров
После создания аккаунта пароль должен быть установлен командой passwd. Система запросит ввод нового пароля и его подтверждение.
Для изменения или сброса пароля существующего пользователя:
sudo passwd username
Если нужно изменить другие параметры (комментарий, домашний каталог, оболочку), используется usermod:
# Изменить полное имя (поле GECOS)
sudo usermod -c "Иван Петров" newuser
# Изменить домашний каталог (предварительно переместите файлы!)
sudo usermod -d /home/newuser_home newuser
# Запретить вход (сделать оболочку /usr/sbin/nologin)
sudo usermod -s /usr/sbin/nologin newuser
Шаг 3: Работа с группами и правами
Права в Linux назначаются пользователям и группам. Управление группами — ключ к организации доступа.
Создание новой группы:
sudo groupdev newgroup
Добавление пользователя в группу:
# Добавить пользователя newuser в группу sudo (для прав администратора)
sudo usermod -aG sudo newuser
# Добавить в несколько групп через запятую
sudo usermod -aG docker,www-data newuser
⚠️ Критически важно использовать флаг
-a(append) вместе с-G. Без-aкомандаusermod -Gзаменит все дополнительные группы пользователя на указанные, что может лишить его доступа.
Просмотр групп пользователя:
groups newuser
# Или
id newuser
Шаг 4: Проверка корректности создания
Обязательно проверьте, что все изменения применились:
- Проверка записи в
/etc/passwd:grep newuser /etc/passwd
Пример вывода:newuser:x:1001:1001::/home/newuser:/bin/bash— здесь указаны uid, gid, домашний каталог и оболочка. - Проверка домашнего каталога:
ls -ld /home/newuser
Владелец (newuser) и группа (newuser) должны быть указаны верно. - Проверка групп:
id newuser
Убедитесь, что нужные группы (например,sudo) присутствуют в списке. - Тестовая аутентификация (опционально):
su - newuser pwd # Должен показать /home/newuser exit
Шаг 5: Удаление пользователя
При удалении пользователя нужно решить, что делать с его данными.
Только учетная запись (без удаления файлов):
sudo userdel newuser
Файлы в домашнем каталоге останутся, но будут "висеть" без владельца (отобразятся как uid 1001, если он был).
Полное удаление (учетная запись + домашний каталог + почта):
sudo userdel -r newuser
Флаг -r рекурсивно удалит домашний каталог /home/newuser и почтовую очередь в /var/mail/newuser.
💡 Совет: Перед удалением убедитесь, что пользователь не работает в системе. Завершите его процессы:
sudo pkill -u newuser.
Проверка результата
Главный индикатор успеха — возможность войти в систему под новым пользователем (если это обычный аккаунт) или выполнить команду, требующую его прав (например, sudo). Также проверьте:
- Существование домашнего каталога и его правильное владение.
- Корректность групп (
id <username>). - Отсутствие ошибок в системных логах (
sudo tail -f /var/log/auth.logилиjournalctl -xeпри попытке входа).
Возможные проблемы
| Проблема | Вероятная причина | Решение |
|---|---|---|
useradd: user 'test' already exists | Пользователь с таким именем уже есть. | Проверьте getent passwd test или /etc/passwd. Выберите другое имя или удалите старого пользователя. |
| Не удаётся войти по SSH после создания | Домашний каталог не создан или неправильные права. | Убедитесь, что использовали -m при useradd или adduser. Проверьте права на /home/newuser: drwxr-xr-x. |
sudo: command not found или отказ в правах | Пользователь не в группе sudo/wheel или конфиг sudoers повреждён. | Проверьте группы id. Проверьте /etc/sudoers через visudo. Убедитесь, что есть строка %sudo ALL=(ALL:ALL) ALL. |
Ошибка usermod: cannot lock /etc/passwd; try again later | Файл /etc/passwd заблокирован другим процессом (например, другим useradd). | Подождите несколько секунд и повторите. Если проблема persists, проверьте, нет ли зависших процессов (`ps aux |
| Файлы создаются с неправильным владельцем после смены uid | Старые файлы хранят старый uid. | После смены uid через usermod -u нужно вручную исправить владельца всех файлов: find / -uid <старый_uid> -exec chown <новый_uid> {} \;. |
Дополнительные сценарии
Создание системного (сервисного) пользователя без домашнего каталога и с запретом на вход:
sudo useradd -r -s /usr/sbin/nologin svc_backup
Флаг -r создает системного пользователя с uid < 1000 (стандарт для сервисов).
Массовое создание пользователей из файла:
while read user; do sudo adduser --gecos "" --disabled-password $user; done < users.txt
(Используйте с осторожностью, предварительно проверьте файл users.txt).
Копирование прав и групп с существующего пользователя:
sudo useradd -m -s /bin/bash -G $(id -nG olduser | tr ' ' ',') newuser
Эта команда создаст newuser и добавит его во все группы, в которых состоит olduser.
Заключение
Вы освоили основные операции управления пользователями в Linux: создание через adduser/useradd, настройку паролей, работу с группами через usermod и безопасное удаление через userdel -r. Эти команды — фундамент администрирования. Для углублённых сценариев (настройка PAM, LDAP-аутентификация) изучайте документацию man к соответствующим пакетам (pam, sssd).