Сразу после создания 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 добавляет пользователя только в те группы, которые указаны в опциях.
Создание пользователя с помощью 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.