Быстрое cоздание пользователей в Linux (useradd, usermod, chsh)

Процесс добавления пользователя состоит из двух шагов: создания пользователя и настройки пароля. На первом шаге используется команда useradd c набором опций для настройки нового пользователя и его именем (логином):

useradd [как создать] [как назвать]

Эта команда имеет ряд настроек по умолчанию, которые задаются с помощью файлов /etc/default/useradd и /etc/login.defs Увидеть основные можно с помощью команды ключа -D:

# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no
  • GROUP - GID группы, в которую пользователь будет добавлен после создания
  • HOME - базовый каталог, в котором будет размещена директория пользователя
  • INACTIVE - указывает время до блокировки пользователя, когда его пароль станет недействителен. Значение «-1» отключает опцию
  • EXPIRE - дата, до которой действителен аккаунт. По умолчанию не установлена — то есть без ограничений
  • SHELL - используется для настройки доступа к командной оболочке
  • SKEL - содержит путь к директории, в которой хранятся файлы по умолчанию. После создания пользователя они будут автоматически скопированы в его домашнюю папку
  • CREATE_MAIL_SPOOL - определяет, нужно ли создать папку для писем этого пользователя в /var/spool/mail/

Все эти настройки применяются, если использовать самый простой вариант команды создания пользователя без параметров:

useradd test-user

Но обычно нам требуется добавить пользователя со специфическими настройками — для этого используется расширенный вариант этой команды. Перечислим основные опции:

  • -m создаёт указанную домашнюю директорию, если она ещё не существует
  • -d /home/test-user устанавливает /home/test-user в качестве домашней директории
  • -c "Имя Фамилия" добавляет комментарий. Например, с именем пользователя
  • -g test указывает группу, в которую попадёт пользователь после создания. Можно использовать с GID или именем группы. Указанная группа должна существовать. Используется в сочетании с ключом -N (отменяет автоматическое создание группы с именем пользователя)
  • -G users,wheel указывает список дополнительных групп пользователя. Они перечисляются через запятую без пробелов
  • -s /bin/bash позволяет настроить доступ к shell
  • -r создаёт системного пользователя. Используется, когда вам нужно настроить службу на работу из-под конкретного пользователя. По умолчанию данные таких пользователей не вносятся в /etc/shadow, для них не создаётся домашняя папка
  • -u позволяет указать свой UID, который будет присвоен новому пользователю. В качестве UID указывается положительное целое число. UID должен быть уникален
  • -e 2022-01-01 указывает дату, до которой аккаунт будет активен. Дата задаётся в формате YYYY-MM-DD
  • -f 3 указывает количество дней до блокировки пользователя, когда его пароль станет недействителен

Пример с часто используемыми ключами useradd:

# useradd -m testbash -s /bin/bash

, где ключ -m создает домашнюю директорию пользователя; -s задает оболочку пользователя.

Пример с использованием большого количества ключей useradd:

useradd -m -u 666 -d /home/users/test-user -c "Тестовый пользователь" -e 2060-01-01 -s /bin/bash test-user

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

passwd test-user

Система предложит ввести и подтвердить пароль. На этом процесс создания пользователя можно считать завершённым.

usermod - модифицирует существующего пользователя.

  • Добавим пользователя darkfire в группы sys,wheel
usermod -aG sys,wheel darkfire

Изменить shell для пользователя и запретить ему логинеться по SSH.

chsh -s /bin/false  УЧЁТНАЯ_ЗАПИСЬ

nologin — более удобный для пользователя вариант, с настраиваемым сообщением, выдаваемым пользователю, пытающемуся войти в систему, поэтому теоретически вы захотите его использовать; но и nologin, и false будут иметь один и тот же конечный результат: у кого-то нет оболочки тот не сможет подключиться по ssh.

PQ VPS сервера в 28+ странах.