Введение / Зачем это нужно
Управление пользователями — одна из фундаментальных задач системного администратора Linux. Корректная настройка учётных записей обеспечивает безопасность, разделение прав доступа и подотчётность в системе. Этот гайд объясняет, как выполнять основные операции: создание, модификация и удаление пользователей, а также работу с группами. Все команды работают в большинстве современных дистрибутивов (Ubuntu, Debian, CentOS, RHEL, Fedora).
После выполнения этого руководства вы сможете:
- Создавать пользователей с нужными параметрами (домашний каталог, оболочка).
- Назначать и изменять пароли.
- Управлять членством в группах.
- Безопасно удалять учётные записи.
- Проверять информацию о пользователях.
Требования / Подготовка
Перед началом убедитесь, что:
- У вас есть доступ к терминалу или консоли управления сервером.
- Вы вошли в систему от имени root или под пользователем с правами sudo.
- У вас есть базовое понимание командной строки.
Проверка прав: Выполните команду sudo -v. Если пароль запрашивается и вы его знаете — всё готово. Если выводится сообщение об ошибке, обратитесь к администратору системы.
Пошаговая инструкция
Шаг 1: Создание нового пользователя
Основная утилита — useradd. Рекомендуемый командный шаблон:
sudo useradd -m -s /bin/bash newusername
-m— автоматически создаёт домашний каталог/home/newusernameна основе шаблона/etc/skel.-s /bin/bash— устанавливаетbashв качестве оболочки входа по умолчанию. Для других оболочек укажите соответствующий путь (/bin/zsh,/bin/sh).
Пример создания пользователя devops с оболочкой bash:
sudo useradd -m -s /bin/bash devops
Примечание: Если нужно создать пользователя без домашнего каталога (например, для системных служб), опустите флаг -m.
Шаг 2: Назначение пароля пользователю
Созданный пользователь не сможет войти в систему, пока не получит пароль. Используйте passwd:
sudo passwd newusername
Система запросит дважды ввод нового пароля. Вводимые символы не отображаются.
Важно: Для повышения безопасности пароль должен соответствовать политике сложности. Настройка политик (длина, наличие цифр/спецсимволов) выполняется через файл /etc/login.defs и модуль PAM (/etc/pam.d/common-password в Debian/Ubuntu).
Шаг 3: Добавление пользователя в дополнительные группы
По умолчанию пользователь добавляется в свою персональную группу (с таким же именем). Чтобы предоставить ему привилегии sudo или доступ к другим ресурсам (например, docker), добавьте его в нужные группы.
sudo usermod -aG sudo newusername
-aG— критически важные флаги.-a(append) добавляет группу к существующим, не удаляя другие.-Gуказывает список дополнительных групп.
Пример: Добавление пользователя devops в группы sudo и docker:
sudo usermod -aG sudo,docker devops
Проверка групп пользователя:
groups devops
# или
id devops
Шаг 4: Настройка параметров по умолчанию (опционально)
Если вы часто создаёте пользователей с одинаковыми настройками, измените значения по умолчанию в /etc/default/useradd или используйте флаги напрямую в команде useradd.
Часто используемые флаги useradd:
-c "Комментарий"— Полное имя или описание (например,-c "Ivan Petrov").-d /путь/к/домашнему/каталогу— явный путь к домашнему каталогу (если не/home/username).-G группа1,группа2— сразу добавить в дополнительные группы при создании.-e YYYY-MM-DD— дата истечения срока действия учётной записи.-f N— количество дней после истечения пароля, в течение которых вход возможен (0 — немедленная блокировка).
Пример создания пользователя с комментарием и сразу в группе developers:
sudo useradd -m -c "Anna Sidorova" -G developers -s /bin/bash anna
sudo passwd anna
Шаг 5: Удаление пользователя
При удалении пользователя можно оставить его домашний каталог и почтовый спул (файлы в /var/spool/mail) или удалить всё.
sudo userdel -r username
-r— удаляет домашний каталог пользователя (/home/username) и почтовый спул. Используйте с осторожностью!
Безопасный вариант (только учётная запись):
sudo userdel username
В этом случае файлы в /home/username останутся на диске и будут принадлежать удалённому UID. Их нужно будет вручную найти (find / -uid бывший_UID) и удалить или перепривязать.
Проверка результата
- Существование пользователя: Проверьте запись в
/etc/passwd:getent passwd newusername
Вывод должен содержать строку с UID, GID, домашним каталогом и оболочкой. - Пароль: Убедитесь, что пароль установлен (в поле пароля
/etc/shadowбудет хэш, а не!или*):sudo grep newusername /etc/shadow - Группы: Проверьте членство:
id newusername - Вход в систему: Попробуйте войти под новым пользователем с помощью
su - newusername(в новой сессии) или через SSH/консоль, если это удалённый пользователь.
Возможные проблемы
useradd: user 'username' already exists— Пользователь с таким именем уже есть в системе. Используйте другое имя или удалите старого пользователя.passwd: Authentication token manipulation error— Не удалось установить пароль. Чаще всего причина — отсутствие прав sudo или заблокированный файл/etc/shadow(проверьте права:ls -l /etc/shadow). Также может быть нехватка места на диске.- Пользователь не может выполнять
sudo— После добавления в группуsudoпользователю нужно выйти и заново войти в систему, чтобы обновить список групп. Можно применить изменения без перезахода:newgrp sudo(в текущей сессии) илиsg sudo -c 'команда'. - Домашний каталог не создаётся — Убедитесь, что в
/etc/login.defsправильно указанCREATE_HOME yes. Или используйте флаг-mявно. Также проверьте наличие и права на шаблон/etc/skel. usermod: cannot lock /etc/passwd; try again later— Другой процесс (например, другойuseraddилиvipw) заблокировал файл паролей. Подождите минуту и повторите попытку.