Чтобы создать пользователя в Linux, достаточно одной команды: adduser ivan. Она заводит учётную запись, создаёт домашний каталог /home/ivan и сразу спрашивает пароль. Дальше идут три обязательных шага, без которых новая учётка бесполезна: выдать права администратора через группу sudo, положить SSH-ключ и запретить вход root по паролю. Весь этот набор занимает минут десять и делается на любом VPS с Ubuntu сразу после первой загрузки.
Материал для тех, кто только что получил доступ к серверу и пока работает под root — то есть под учётной записью с неограниченными правами. Разберём разницу между adduser и useradd, покажем, чем отличается настройка в Debian и в RHEL-семействе, объясним права 700 и 600 на каталог с ключами и опишем, как не заблокировать себе доступ при правке конфигурации SSH.
Почему работать под root на сервере опасно
Root — это встроенная учётная запись с абсолютными правами. Ей разрешено всё: удалить системный каталог, переписать конфигурацию загрузчика, остановить любой процесс. Ошибка в одной команде под root не вызывает предупреждения — система просто выполняет то, что ей сказали.
Вторая причина — подбор пароля. Имя root есть на каждом Linux-сервере, поэтому боты, перебирающие пароли, бьют именно по нему. Свежий сервер с белым IP (то есть с публичным адресом, который виден из интернета) начинает получать попытки входа на порт 22/TCP уже в первые часы после выдачи адреса. Атакующему нужно угадать только пароль, логин он уже знает.
Отдельный пользователь снимает обе проблемы. Его имя злоумышленнику неизвестно, а опасные команды выполняются через sudo — с явным подтверждением и записью в журнал. Плюс появляется история: в многопользовательской системе видно, кто именно перезапустил сервис. Подробности протокола доступа мы разбирали в статье про SSH и в отдельном руководстве по настройке SSH на VPS.
adduser или useradd: в чём разница между командами
В Debian и Ubuntu существуют две команды с почти одинаковым названием, и новички регулярно путают их. useradd — низкоуровневая системная утилита. Она создаёт запись в /etc/passwd и на этом останавливается: ни домашнего каталога, ни пароля, ни оболочки по умолчанию вы не получите. Войти под такой учёткой не выйдет.
adduser — это скрипт-обёртка поверх useradd, который делает всё остальное за вас: создаёт /home/ivan, копирует туда шаблонные файлы из /etc/skel, назначает оболочку /bin/bash, запрашивает пароль и задаёт несколько необязательных вопросов (полное имя, телефон — их можно пропустить, нажимая Enter).
| Что делает команда | adduser | useradd |
|---|---|---|
| Домашний каталог | Создаёт автоматически | Только с ключом -m |
| Запрос пароля | Спрашивает интерактивно | Не спрашивает, нужен passwd |
| Оболочка по умолчанию | /bin/bash | /bin/sh или none |
| Файлы из /etc/skel | Копирует | Только с ключом -m |
| Где доступна | Debian, Ubuntu | Все дистрибутивы |
В RHEL-семействе (AlmaLinux, Rocky Linux, CentOS Stream) команды adduser как отдельного скрипта нет — там это просто символическая ссылка на useradd — ярлык, который ведёт на другую команду. Поэтому в таких системах пароль всегда задаётся вторым шагом, командой passwd ivan.
Пошаговая инструкция: создаём пользователя с нуля
Все команды ниже выполняются от root, в терминале сервера. Замените ivan на нужное имя — используйте только латиницу в нижнем регистре, цифры и дефис, длиной до 32 символов. Имена с заглавными буквами или точками формально допустимы, но ломают часть скриптов.
- Заведите учётную запись:
adduser ivan. Дважды введите пароль (он не отображается при наборе — это нормально), остальные вопросы пропустите клавишей Enter. - Выдайте права администратора:
usermod -aG sudo ivanв Debian и Ubuntu либоusermod -aG wheel ivanв AlmaLinux, Rocky и CentOS. - Проверьте результат:
id ivan. В выводе должна появиться группаsudo(илиwheel) рядом с основной группой пользователя. - Переключитесь на нового пользователя:
su - ivan. Дефис здесь обязателен — он подгружает окружение и переводит вас в домашний каталог. - Выполните любую административную команду через
sudo, напримерsudo systemctl status ssh— она показывает, работает ли служба SSH. Первый вызов запросит пароль самого пользователя, а не root.
Если пятый шаг сработал, учётная запись готова. Не закрывайте текущее подключение — оно понадобится как страховка при правке конфигурации SSH.

Как устроен файл /etc/passwd и что в нём смотреть
Список всех учётных записей системы хранится в текстовом файле /etc/passwd. Открыть его может любой пользователь: cat /etc/passwd. Паролей там нет — их хеши лежат отдельно, в /etc/shadow, доступном только root. Каждая строка описывает одну учётку и состоит из семи полей, разделённых двоеточиями.
| Поле | Что означает | Пример |
|---|---|---|
| 1 | Имя пользователя | ivan |
| 2 | Метка пароля (хеш в /etc/shadow) | x |
| 3 | UID — числовой идентификатор | 1001 |
| 4 | GID — основная группа | 1001 |
| 5 | Комментарий, полное имя | Ivan Petrov |
| 6 | Домашний каталог | /home/ivan |
| 7 | Оболочка входа | /bin/bash |
Обычным пользователям система выдаёт UID начиная с 1000, у root он всегда равен 0. Служебные учётки вроде www-data получают номера ниже 1000, а особая запись nobody — номер 65534. Чтобы отфильтровать только живых пользователей, удобна команда awk -F: '$3 >= 1000 {print $1}' /etc/passwd — она печатает имена из первого поля для строк, где третье поле не меньше 1000.
Признак служебной учётки — оболочка /usr/sbin/nologin или /bin/false в седьмом поле. Такие записи создают программы при установке — от их имени работают демоны, то есть фоновые службы без окон и участия человека. Войти под ними нельзя, и это сделано специально. Удалять их нельзя: без www-data не стартует веб-сервер.
SSH-ключ: как положить его новому пользователю
SSH-ключ — это пара файлов: закрытый остаётся на вашем компьютере, открытый копируется на сервер. При подключении сервер проверяет, что у вас есть закрытая половина, и пароль становится не нужен. Подобрать ключ перебором нереально, поэтому это основной способ входа на боевые машины.
Сначала на своём компьютере сгенерируйте пару, если её ещё нет: ssh-keygen -t ed25519 -C "ivan@laptop". Ключ типа ed25519 короче и быстрее классического RSA на 4096 бит, при этом поддерживается всеми современными версиями OpenSSH. Утилита предложит путь по умолчанию и парольную фразу — фразу лучше задать, она защищает файл на случай кражи ноутбука.
Самый простой способ доставки — команда ssh-copy-id ivan@203.0.113.10. Она подключится по паролю и сама допишет открытый ключ в нужный файл с правильными правами. Если ssh-copy-id недоступен, всё делается вручную от имени нового пользователя:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chown -R ivan:ivan ~/.ssh
Первая строка создаёт скрытый каталог, вторая ставит на него права 700 — читать, писать и заходить внутрь может только владелец. В третьей строке вы вставляете содержимое файла id_ed25519.pub одной строкой без переносов. Четвёртая выставляет 600 на сам файл authorized_keys: владелец читает и пишет, остальные не видят ничего. Пятая назначает владельцем каталога самого пользователя — частая причина отказа, когда файлы созданы от root.
SSH-демон намеренно игнорирует ключи, если права шире положенных. Каталог с правами 755 или файл с 644 приведут к молчаливому отказу: сервер просто снова спросит пароль. Проверить фактические значения помогает ls -ld ~/.ssh и ls -l ~/.ssh/authorized_keys.
Запрет входа root по паролю без потери доступа
Когда вход по ключу под новым пользователем проверен, root можно закрывать. Настройка живёт в файле /etc/ssh/sshd_config. Откройте его командой sudo nano /etc/ssh/sshd_config и приведите две строки к такому виду:
PermitRootLogin no
PasswordAuthentication no
Первая директива запрещает подключаться под root любым способом. Вторая отключает вход по паролю для всех — остаются только ключи. Включать её стоит лишь после того, как ключ гарантированно работает, иначе вы отрежете себя от сервера. Строки могут быть закомментированы символом # в начале — его нужно убрать.
Перед перезапуском проверьте синтаксис: sudo sshd -t. Если команда ничего не вывела — ошибок нет. Затем примените изменения: sudo systemctl restart sshd (в Debian и Ubuntu сервис часто называется ssh, тогда команда будет sudo systemctl restart ssh).
Главное правило: текущую сессию не закрывать. Откройте второе окно терминала и подключитесь заново под новым пользователем. Только если новый вход прошёл, старое окно можно закрывать. При ошибке в конфигурации живая сессия останется единственным способом всё вернуть — иначе спасёт лишь консоль в панели управления провайдера. Следующим шагом обычно закрывают лишние порты, об этом есть отдельный разбор про настройку файрвола на Linux-сервере.

Что делает sudo и как ограничить его аккуратно
sudo выполняет одну команду от имени root после ввода собственного пароля пользователя. Разрешение даёт членство в группе — sudo в Debian-семействе и wheel в RHEL-семействе. Сами правила хранятся в /etc/sudoers, и редактировать этот файл нужно только командой visudo: она проверяет синтаксис перед сохранением и не даст сломать доступ опечаткой.
Посмотреть, что именно разрешено текущей учётке, помогает sudo -l. Вывод показывает список команд — у полноправного администратора там будет (ALL : ALL) ALL. По умолчанию пароль запрашивается один раз и запоминается на 15 минут в пределах терминала, поэтому подряд идущие команды не требуют повторного ввода.
Если нужен пользователь для одной задачи — например, чтобы коллега перезапускал только веб-сервер, — вместо полного доступа добавьте через visudo точечное правило вида ivan ALL=(root) /usr/bin/systemctl restart nginx. Тогда все остальные административные команды останутся ему недоступны. Чем меньше учёток с полными правами, тем меньше последствий у скомпрометированного пароля.
Как удалить пользователя и что после него остаётся
Удаление устроено так же несимметрично, как и создание. В Debian и Ubuntu команда deluser ivan убирает учётную запись, но оставляет домашний каталог на диске. Чтобы стереть и его, добавляют ключ: deluser --remove-home ivan. В RHEL-семействе аналог — userdel -r ivan, где -r означает то же самое.
Перед удалением проверьте, не работают ли от имени этой учётки процессы: ps -u ivan покажет их список, а pkill -u ivan завершит. Иначе система откажется удалять активного пользователя. Разбор вывода по процессам есть в материале о том, как посмотреть процессы в Linux.
Иногда учётку нужно не удалить, а временно отключить. Для этого есть usermod -L ivan — команда блокирует пароль, оставляя файлы на месте; обратная операция usermod -U ivan. Отдельно стоит помнить, что блокировка пароля не отключает вход по SSH-ключу: чтобы закрыть и его, переименуйте или очистите ~/.ssh/authorized_keys.
На каком сервере это делать и сколько он стоит
Для базовой настройки учётных записей хватает минимальной машины: ядро процессора, 1 ГБ памяти и 10 ГБ диска. Такая конфигурация тянет небольшой сайт, Telegram-бота или тестовое окружение. Требование одно — root-доступ по SSH, то есть полноценный VPS, а не общий хостинг, где системных пользователей заводит панель. В каталоге сейчас 44 площадки, минимальные тарифы у них выглядят так.
| Провайдер | Цена от | Стартовая конфигурация | Тарифов в каталоге |
|---|---|---|---|
| Cloudcore | 59 ₽/мес | 1 ядро, 1 ГБ RAM, 10 ГБ NVMe | 12 |
| Hosting-Russia | 99 ₽/мес | Начальный VPS | — |
| 4VPS | 110 ₽/мес | 1 ядро, 1 ГБ RAM, 5 ГБ NVMe | 568 |
| HostVDS | 127 ₽/мес | 1 ядро, 1 ГБ RAM, 10 ГБ NVMe | 12 |
Данные проверены 04.09.2026.
Разница в цене на старте объясняется объёмом диска и поколением процессора, а не набором прав: root выдают на любом тарифе. Если проект уже работает с данными клиентов, имеет смысл смотреть в сторону площадок с резервным копированием и защитой периметра — они собраны в подборке безопасных VPS, а совсем бюджетные варианты для учебных задач — среди недорогих VPS.
Частые ошибки при заведении пользователя
Почти все проблемы сводятся к четырём сценариям, и каждый диагностируется за минуту. Разбирайте их по порядку: сначала членство в группе, затем права на файлы и только потом конфигурация SSH-демона.
- Забыт ключ
-aв usermod. Командаusermod -G sudo ivanзаменяет все дополнительные группы пользователя одной. Правильная форма —usermod -aG, где-aозначает «добавить». - Права на .ssh шире 700. SSH молча игнорирует ключи и снова спрашивает пароль. Лечится парой команд
chmod 700 ~/.sshиchmod 600 ~/.ssh/authorized_keys. - Каталог .ssh принадлежит root. Так бывает, когда файлы создавали от root через
sudo. Исправляетchown -R ivan:ivan /home/ivan/.ssh. - Группа wheel вместо sudo и наоборот. В AlmaLinux добавление в
sudoне даст ничего: такой группы там просто нет, а команда завершится ошибкой. - Сессия закрыта до проверки. После правки
sshd_configстарое подключение — единственная страховка. Проверяйте новый вход из второго окна.
Отдельный класс проблем — попытки подобрать пароль к новой учётке. Если вход по паролю всё же оставлен, стоит поставить Fail2ban: утилита читает журнал авторизаций и временно банит адреса, с которых идут неудачные попытки.
Частые вопросы
Можно ли создать пользователя без пароля? Да, если вход будет только по ключу. Заведите учётку через adduser --disabled-password ivan, затем добавьте открытый ключ в ~/.ssh/authorized_keys. Пароль при этом понадобится для sudo, поэтому такой вариант обычно сочетают с правилом NOPASSWD в /etc/sudoers — оно разрешает выполнять sudo без ввода пароля.
Что делать, если после запрета root я не могу зайти? Откройте консоль сервера в панели управления провайдера — она работает в обход SSH и подключается напрямую к виртуальной машине. Войдите под root, верните PermitRootLogin yes, перезапустите демон и разбирайтесь с ключом уже спокойно.
Чем группа отличается от пользователя? Пользователь — это учётная запись, от имени которой запускаются процессы. Группа — набор учёток, которым разом выдают доступ к файлу или команде. Каждый пользователь имеет одну основную группу и сколько угодно дополнительных; посмотреть их можно командой groups ivan.
Как узнать, под кем я сейчас работаю? Команда whoami печатает имя текущего пользователя, а id добавляет числовые UID и GID со списком групп. Если приглашение командной строки заканчивается символом #, вы под root; символ $ означает обычную учётную запись.
Сколько пользователей можно завести на одном VPS? Технический предел — свыше 60 тысяч UID, практический упирается в память: каждая активная SSH-сессия занимает единицы мегабайт. На машине с 1 ГБ RAM десяток одновременно работающих администраторов проблем не создаст.
Нужно ли менять порт SSH с 22-го? Смена порта убирает основную массу автоматического перебора из журналов, но не заменяет ключи и файрвол. Это косметическая мера: сканеры находят нестандартный порт за считаные минуты, поэтому начинать всё равно надо с отключения парольного входа.
Что означает ошибка «ivan is not in the sudoers file»? Пользователь не состоит в административной группе. Вернитесь в сессию root и выполните usermod -aG sudo ivan для Debian и Ubuntu либо usermod -aG wheel ivan для AlmaLinux и Rocky, после чего переподключитесь — членство в группе подхватывается при новом входе.
Итог
Порядок действий на новом сервере одинаков для любого дистрибутива: adduser, добавление в группу sudo или wheel, ключ в ~/.ssh/authorized_keys с правами 600 и каталогом 700, затем PermitRootLogin no с обязательной проверкой входа из второго окна. Это занимает около десяти минут и закрывает самый массовый вектор атак на серверы с белым IP.
Все команды из статьи работают на любой машине с полным root-доступом — от тарифа за 59 ₽/мес до конфигураций на десятки ядер. Подобрать площадку под свой дистрибутив и бюджет можно в разделе VPS на Linux: там собраны предложения 44 провайдеров с фильтрами по ресурсам, локации и цене.