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

Сразу после создания VPS в системе доступен только пользователь root. Он выполняет любую команду без предупреждений, поэтому постоянно работать под ним небезопасно. Обычно на сервере создают отдельного пользователя и работают под ним, а административные команды выполняют через sudo. Такой пользователь нужен для повседневной работы по SSH, доступа коллег к серверу и запуска приложений и служб.

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

Все команды в статье приведены для пользователя root. Если вы работаете под пользователем с правами администратора, добавляйте к ним sudo. Примеры вывода сняты на Ubuntu 24.04, в других дистрибутивах он может отличаться. Имена пользователей в примерах условные, подставляйте свои. Для подключения к серверу по SSH воспользуйтесь инструкцией “Как подключиться к серверу по SSH”.

Из чего состоит учетная запись

Учетная запись в Linux включает не только имя и пароль – при создании пользователя система задает для него несколько обязательных параметров:

  • идентификатор UID – число, по которому система различает пользователей. Обычным пользователям она присваивает номера, начиная с 1000, а меньшие значения резервирует для системных учетных записей, от имени которых работают службы;
  • домашний каталог – каталог, в котором хранятся файлы пользователя и настройки его окружения. Система создает его в /home и называет по имени пользователя, например, /home/имя_пользователя;
  • командная оболочка – программа, которая принимает команды пользователя. Для обычных пользователей укажите /bin/bash, а для служебных – /usr/sbin/nologin, чтобы запретить вход в систему;
  • группы – каждый пользователь состоит в одной основной группе и может входить в дополнительные. Идентификатор основной группы, GID, система хранит рядом с UID, а список дополнительных групп хранится в отдельном файле. Группы позволяют выдать одинаковые права сразу нескольким пользователям. Например, право выполнять команды через sudo пользователь получает именно через членство в группе.

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

Способы создания пользователя

В большинстве дистрибутивов Линукса для создания пользователя используют утилиты adduser и useradd.

Утилита adduser работает в интерактивном режиме. Она создает домашний каталог пользователя, предлагает задать пароль и сама выполняет основные настройки.

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

Обратите внимание!
Интерактивный режим adduser работает в Debian, Ubuntu и производных от них дистрибутивах. В CentOS, AlmaLinux и Rocky Linux команда adduser представляет собой символьную ссылку на useradd. Она не задает вопросов и не запрашивает пароль, поэтому в этих системах используйте useradd с явным указанием параметров.

Создание пользователя с помощью adduser

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

adduser osya

Утилита предложит задать пароль для нового пользователя и подтвердить его. Символы пароля при вводе не отображаются на экране.

Затем утилита запросит дополнительную информацию о пользователе, например, полное имя или номер телефона. Все поля можно оставить пустыми, нажав Enter.

В конце утилита отобразит введенные данные для подтверждения. Если информация указана корректно, введите Y и нажмите Enter.

Команда выведет следующую информацию:

info: Adding user `osya' ...
info: Selecting UID/GID from range 1000 to 59999 ...
info: Adding new group `osya' (1000) ...
info: Adding new user `osya' (1000) with group `osya (1000)' ...
info: Creating home directory `/home/osya' ...
info: Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for osya
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] Y
info: Adding new user `osya' to supplemental / extra groups `users' ...
info: Adding user `osya' to group `users' ...

По выводу видно, какие действия выполнила утилита. Она создала группу с именем пользователя, назначила идентификатор, создала домашний каталог /home/osya и скопировала в него файлы настроек из каталога /etc/skel.

Последние две строки относятся к дополнительным группам. На Ubuntu adduser по умолчанию добавляет нового пользователя еще и в группу users. Это поведение зависит от дистрибутива и настроек в файле /etc/adduser.conf. Команда useradd добавляет пользователя только в те группы, которые указаны в опциях.

Обратите внимание!
Номер UID на вашем сервере может отличаться от примеров в статье. Утилиты выбирают его по-разному, а на сервере, где пользователей уже создавали и удаляли, свободные номера идут не подряд. На работу пользователя это не влияет.

Создание пользователя с помощью useradd

Команда useradd имеет следующий синтаксис:

useradd [опции] username

Свойства пользователя вы задаете опциями. Чаще всего применяют такие:

  • -m – создает домашний каталог пользователя;
  • -d /path – задает домашний каталог, отличный от стандартного /home/имя_пользователя;
  • -s /path/shell – задает командную оболочку, например, /bin/bash;
  • -c "текст" – добавляет комментарий, например, имя сотрудника или назначение учетной записи;
  • -g groupname – задает основную группу пользователя;
  • -G group1,group2 – добавляет пользователя в дополнительные группы, перечисленные через запятую без пробелов;
  • -u UID – задает конкретный идентификатор пользователя;
  • -e ГГГГ-ММ-ДД – задает дату, после которой система заблокирует учетную запись;
  • -r – создает системного пользователя для запуска служб.

Полный список опций смотрите в справке. Чтобы открыть ее, выполните команду:

man useradd

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

useradd -m -s /bin/bash osya2

Указывайте обе опции явно. Если пропустить -m, в Debian и Ubuntu домашний каталог не создастся, а без -s система назначит оболочку /bin/sh вместо Bash.

После создания пользователя задайте ему пароль. Без пароля он не сможет войти в систему:

passwd osya2

Введите новый пароль и подтвердите его. Если пароль принят, команда выведет сообщение:

New password:
Retype new password:
passwd: password updated successfully

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

ls -ld /home/osya2
drwxr-x--- 2 osya2 osya2 4096 Aug  3 12:50 /home/osya2

Как добавить пользователя Linux в группу sudo

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

В Debian, Ubuntu и производных дистрибутивах группа называется sudo:

usermod -aG sudo osya

В CentOS, AlmaLinux и Rocky Linux группа называется wheel:

usermod -aG wheel osya

Опции команды:

  • -a – добавляет пользователя в новую группу, сохраняя его членство в других группах;
  • -G – указывает дополнительную группу, в которую нужно добавить пользователя Linux.
Обратите внимание!
Опция -a обязательна, если вы хотите оставить членство пользователя в других группах. Без нее команда заменит список дополнительных групп пользователя на указанную группу – и пользователь потеряет членство во всех остальных группах.

Проверка созданного пользователя

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

Посмотрите информацию о пользователе командой:

id osya

В выводе будут указаны:

  • идентификатор пользователя (UID);
  • основная группа (GID);
  • дополнительные группы, в которые входит пользователь.

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

uid=1000(osya) gid=1000(osya) groups=1000(osya),27(sudo),100(users)

Группа users появилась в выводе потому, что на Ubuntu ее назначает adduser. У пользователя osya2, созданного командой useradd, в списке будет только основная группа.

Затем переключитесь на нового пользователя:

su - osya

Пока пользователь ни разу не выполнял команды через sudo, при каждом входе выводится краткая справка:

To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

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

sudo whoami

Команда запросит пароль созданного пользователя:

[sudo] password for osya:
root

Ответ root означает, что команда выполнилась с правами администратора.

Чтобы вернуться в сессию root, выполните команду exit.

Проверьте также подключение к серверу под новым пользователем. Не закрывая текущую сессию root, откройте второе окно терминала и выполните:

ssh osya@IP_адрес_сервера

Вместо входа по паролю настройте доступ по SSH-ключу. Пароль можно подобрать перебором, боты постоянно сканируют интернет в поисках открытых SSH-портов. Закрытый ключ по сети не передается, поэтому перехватить его нельзя, а подобрать не позволяет длина. Порядок настройки описан в статье “Автоматическая SSH-авторизация по ключу”.

Другие сценарии создания пользователя

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

Пользователь для запуска приложений и служб

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

useradd -r -s /usr/sbin/nologin appservice

Опции команды:

  • -r – создает системного пользователя;
  • -s /usr/sbin/nologin – запрещает вход в систему.

В CentOS, AlmaLinux и Rocky Linux путь к оболочке nologin указывают как /sbin/nologin.

Проверьте, что вход под таким пользователем невозможен:

su - appservice
su: warning: cannot change directory to /home/appservice: No such file or directory
This account is currently not available.

Обе строки подтверждают, что пользователь создан правильно. Первая сообщает об отсутствии домашнего каталога, поскольку опция -m в команде не указана и служебному пользователю каталог не нужен. Вторая приходит от оболочки nologin, которая запрещает вход.

Пользователь с ограниченным сроком доступа

Когда доступ нужен на время работ, задайте дату блокировки учетной записи заранее. Выполните команды:

useradd -m -s /bin/bash -e 2026-09-01 contractor
passwd contractor

Опция -e задает дату в формате ГГГГ-ММ-ДД, после которой система заблокирует вход.

Проверьте срок действия учетной записи командой chage. Строка Account expires показывает дату блокировки:

chage -l contractor | grep "Account expires"
Account expires                                         : Sep 01, 2026

Пользователь в общей группе

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

Сначала создайте группу:

groupadd developers

Затем создайте пользователя и сразу укажите группу опцией -G:

useradd -m -s /bin/bash -G developers developer1

Проверьте результат командой id:

id developer1
uid=1003(developer1) gid=1004(developer1) groups=1004(developer1),1003(developers)

Номера UID и GID здесь не совпадают, потому что 1003 заняла созданная ранее группа developers.

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

Где хранится информация о пользователях

Система хранит все данные об учетных записях в текстовых файлах:

  • /etc/passwd содержит основную информацию об учетных записях: имя пользователя, UID, GID основной группы пользователя Linux, комментарий, домашний каталог и командную оболочку. Читать этот файл могут все пользователи системы, паролей в нем нет;
  • /etc/shadow хранит хеши паролей и параметры их срока действия. Читать его может только root;
  • /etc/group содержит список групп и входящих в них пользователей Linux. Именно этот файл изменяет команда, которая добавляет пользователя в группу sudo;
  • /etc/skel – каталог-шаблон. Его содержимое, например, файлы .bashrc и .profile, система копирует в домашний каталог нового пользователя. Если хотите, чтобы у всех новых пользователей были одинаковые настройки окружения, добавляйте файлы именно сюда;
  • /etc/default/useradd и /etc/login.defs задают значения по умолчанию для команды useradd: базовый каталог, оболочку, диапазон UID, срок действия пароля;
  • /etc/adduser.conf содержит такие же настройки для утилиты adduser. Из-за этого две команды создают пользователя немного по-разному.

Посмотреть информацию о конкретном пользователе Linux можно командой getent passwd:

getent passwd osya
osya:x:1000:1000:,,,:/home/osya:/bin/bash

В строке семь полей, разделенных двоеточиями: имя пользователя, признак наличия пароля, UID, GID основной группы, комментарий, домашний каталог и командная оболочка. Символ x во втором поле означает, что хеш пароля система хранит в файле /etc/shadow. Запятые в поле комментария остались от необязательных пунктов adduser, которые были пропущены. Если пользователь создан командой useradd, поле будет пустым.

Обратите внимание!
Не редактируйте эти файлы вручную. Ошибка в синтаксисе может лишить вас входа в систему, поэтому для всех изменений используйте команды useradd, usermod, passwd и userdel.

Управление пользователями

После создания пользователя вам может понадобиться изменить его параметры, временно ограничить доступ или удалить учетную запись пользователя Linux.

Изменение пароля

Изменить пароль другого пользователя может root или пользователь с правами sudo:

passwd osya

Команда не запрашивает прежний пароль osya. Такой способ подходит для восстановления забытого доступа. При запуске через sudo система запросит пароль того, кто выполняет команду, а затем предложит задать новый пароль для osya.

Изменение оболочки

Оболочку меняют, если пользователь получил /bin/sh вместо Bash или если служебному пользователю нужно запретить вход в систему. Укажите новую оболочку опцией -s:

usermod -s /bin/bash osya

Изменения вступят в силу при следующем входе в систему. Если пользователь уже подключен к серверу, ему нужно переподключиться.

Добавление и удаление из группы

Существующего пользователя добавляют в группу командой usermod с опциями -aG:

usermod -aG developers osya

Посмотрите список групп пользователя Linux командой:

groups osya

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

osya : osya sudo users developers

Чтобы убрать пользователя из группы, используйте команду gpasswd с опцией -d:

gpasswd -d osya developers
Removing user osya from group developers

Проверьте результат командой groups. Пользователь больше не входит в группу developers, а остальные группы остались без изменений:

osya : osya sudo users

Изменения вступят в силу при следующем входе в систему.

Блокировка и разблокировка пользователя

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

passwd -l osya
passwd: password changed.

Чтобы снова разрешить вход, выполните команду:

passwd -u osya
passwd: password changed.

Обе команды выводят одинаковое сообщение, поэтому проверяйте состояние учетной записи отдельно:

passwd -S osya

Состояние показывает вторая буква в выводе. У заблокированной учетной записи отобразится L:

osya L 2026-08-03 0 99999 7 -1

У активной – P:

osya P 2026-08-03 0 99999 7 -1

Блокировка действует только на новые попытки входа. Если пользователь уже подключен к серверу, его сессия продолжит работать. Чтобы закрыть ее, завершите все процессы пользователя.

Обратите внимание!
Команда passwd -l блокирует только вход по паролю. Подключение по SSH-ключу продолжит работать. Чтобы полностью закрыть доступ, дополнительно удалите или переименуйте файл ~/.ssh/authorized_keys в домашнем каталоге пользователя.

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

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

userdel osya

Чтобы удалить пользователя вместе с его домашним каталогом, добавьте параметр -r:

userdel -r osya

При удалении вы можете увидеть сообщение:

userdel: osya mail spool (/var/mail/osya) not found

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

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

Заключение

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

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

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

Если возникнут вопросы, напишите нам, пожалуйста, тикет из панели управления аккаунта (раздел “Помощь и поддержка”), а если вы захотите обсудить создание пользователей для Astra Linux и других дистрибутивов или наши продукты с коллегами по цеху и сотрудниками Beget – ждем вас в нашем сообществе в Telegram.