Как создать пользователя в Linux: руководство к действию

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

Обзор команды useradd

Для создания новых пользователей в Linux используется команда useradd. Она позволяет добавить запись о новом пользователе в системные файлы /etc/passwd и /etc/shadow. Также useradd может автоматически сгенерировать уникальный UID, создать домашнюю директорию и выполнить другие полезные действия.

Основной синтаксис команды:

useradd [опции] ИМЯ_ПОЛЬЗОВАТЕЛЯ

Рассмотрим самые полезные опции useradd:

  • -m - создать домашний каталог по умолчанию
  • -d - указать другой путь к домашней директории
  • -u UID - явно задать уникальный идентификатор пользователя в системе
  • -g GID - определить основную группу
  • -G - список дополнительных групп
  • -s - выбрать командную оболочку, например bash или zsh
  • -c - добавить комментарий, описание учетной записи
  • -e - установить срок действия аккаунта

По умолчанию useradd читает конфигурации из файлов /etc/login.defs и /etc/default/useradd, которые задают стандартное значения для домашнего каталога, оболочки, UID и т.д. Эти значения применяются, если не переданы явные опции в командной строке.

Создание домашнего каталога

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

По умолчанию команда useradd не создает домашний каталог для нового пользователя Linux. Чтобы изменить это поведение, следует использовать опцию:

useradd -m username

Пример создания пользователя maxim с домашним каталогом по умолчанию:

# useradd -m maxim

Будет создан каталог /home/maxim со стандартным набором файлов, скопированных из /etc/skel

Файлы из директории /etc/skel копируются, для того чтобы пользователь сразу получил стандартные настройки - файлы .bashrc, .profile и другие.

Также можно явно указать директорию для нового пользователя. Например, поместим maxim в каталог /opt/users/maxim:

useradd -m -d /opt/users/maxim maxim

Преимущество явного указания каталога - возможность структурировать пользовательские директории, настроить права или квоты дискового пространства.

Назначение UID и групп пользователя

В Linux каждый пользователь идентифицируется уникальным числовым идентификатором - UID. Это число от 0 до 65535.

Значения от 0 до 999 обычно зарезервированы под системных пользователей и сервисы. UID от 1000 до 65536 можно использовать для обычных пользовательских аккаунтов.

0 Резервируется для root
1-999 Системные пользователи
1000+ Обычные пользователи

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

Но иногда бывает нужно явно задать UID, например, если требуется перенести учетную запись из одной системы в другую. Для назначения UID используйте опцию:

useradd -u 1505 maxim

Кроме UID, useradd также назначает основную (primary) и дополнительные группы для пользователя.

Основная группа, задается опцией -g определяет групповой идентификатор (GID) пользователя по умолчанию и стандартные права доступа.

Дополнительные группы указываются через -G и предоставляют членство в других группах. Это дает дополнительные привилегии для доступа к различным ресурсам системы - файлам, каталогам, сетевым сервисам и т.д.

Пример добавления пользователя в группы users, sudo, docker при создании:

# useradd -g users -G sudo,docker maxim

Таким образом мы указали основную группу users и две дополнительные - sudo и docker. Это даст пользователю дополнительные привилегии администратора и использование контейнеров docker без root прав.

Выбор командной оболочки

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

Оболочка (shell) - это интерфейс командной строки, который интерпретирует и выполняет команды от пользователя. Наиболее популярные оболочки в Linux:

  • bash - стандартный выбор для большинства дистрибутивов
  • zsh - мощная и настраиваемая альтернатива bash
  • csh/tcsh - устаревшие, но до сих пор используемые оболочки

По умолчанию useradd использует стандартную оболочку из файла настроек /etc/default/useradd, чаще всего это либо /bin/bash либо /bin/sh.

Чтобы явно назначить другую оболочку, следует передать опцию -s:

# useradd -s /bin/zsh maxim

Это назначит zsh в качестве командной оболочки по умолчанию для пользователя maxim.

Дополнительные параметры useradd

Рассмотрим еще несколько полезных опций для настройки пользователей с помощью команды useradd:

  • -c - позволяет добавить произвольный текстовый комментарий для описания учетной записи, например полное имя пользователя
  • -e - устанавливает дату, когда аккаунт пользователя будет автоматически заблокирован
  • -r - создает пользователя как системного, для служебных аккаунтов
  • -D - вывод или изменение параметров useradd по умолчанию

Пример создания временного аккаунта стажера с описанием:

# useradd -c "Вася Пупкин, стажер" -e 2023-05-30 vasya

Здесь мы добавили текстовый комментарий с именем и ролью пользователя, а также указали, что аккаунт прекратит свое действие 30 мая 2023 года.

Назначение пароля и блокировка учетной записи

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

Для назначения пароля используется стандартная утилита Linux passwd:

# passwd maxim

После запуска команды passwd предложит дважды ввести и подтвердить новый пароль для данного пользователя.

Также с помощью passwd можно временно заблокировать аккаунт пользователя, если это необходимо по соображениям безопасности. Для этого служит опция -l:

# passwd -l maxim

Теперь пользователь maxim не сможет войти в систему до тех пор, пока его аккаунт не будет вручную разблокирован командой:

# passwd -u maxim

Управление созданными учетными записями

После того как пользователь создан, иногда возникает необходимость внести изменения в его настройки. Для этого предназначена команда usermod.

С помощью usermod можно изменить имя пользователя, UID, группы, домашний каталог и другие опции. Синтаксис тот же, что и у команды useradd при создании.

Например, чтобы добавить пользователя в новую группу, используйте:

# usermod -aG developers maxim

Изменение основных параметров пользователя

После создания пользователя в Linux иногда возникает потребность изменить его базовые настройки - имя, UID, группы, путь к домашней директории и т.д.

Для этого используется все та же знакомая нам команда - usermod. Синтаксис аналогичный с useradd, просто вместо создания нового пользователя мы модифицируем существующего.

Например, чтобы сменить имя пользователя maxim на maksim1990, выполняем:

# usermod -l maksim1990 maxim

А чтобы изменить его домашний каталог на /home/maksim1990, добавляем опцию -d:

# usermod -l maksim1990 -d /home/maksim1990 maxim

Аналогичным образом можно модифицировать UID с помощью -u, основную или доп. группы через -g и -G соответственно.

Блокировка и разблокировка учетной записи

Системным администраторам иногда необходимо временно заблокировать доступ пользователя в Linux. Это может потребоваться для отладки проблем, предотвращения атак или при увольнении сотрудника.

Чтобы заблокировать пользователя maxim, достаточно запустить:

# passwd -l maksim1990

Это приведет к тому, что maksim1990 больше не сможет войти в систему или выполнить команду sudo до тех пор, пока его аккаунт не будет вручную разблокирован.

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

# passwd -u maksim1990

После этого maksim1990 снова сможет выполнять вход и работать в системе как обычно.

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

Наконец, если учетная запись больше не нужна, ее можно полностью удалить командой userdel. Например, чтобы удалить maksim1990, выполняем:

# userdel maksim1990

По умолчанию userdel удалит домашний каталог и файлы пользователя. Чтобы сохранить их после удаления, используйте опцию -r:

# userdel -r maksim1990

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

Отчетность и мониторинг пользователей

Для отслеживания активности пользователей в системе администратору нужны инструменты аудита и мониторинга.

В Linux есть множество утилит для генерации отчетов о пользователях. Например:

  • last - история входа пользователей в систему
  • lastb - неудачные попытки входа
  • acct/sa - подробная статистика по запущенным процессам и времени работы

Также можно настроить системный журнал (rsyslog, syslog-ng) для отслеживания важных событий, таких как создание новых пользователей, изменение паролей, блокировка аккаунтов.

Централизованная система мониторинга типа Zabbix поможет агрегировать метрики и отправлять уведомления и алерты при проблемах с пользователями.

Комментарии