После заказа сервера вы входите на него под пользователем root, у которого нет никаких ограничений. Для первых шагов это удобно, но работать так постоянно небезопасно, а если сервером пользуются несколько человек, каждому нужна своя учётная запись. В этой статье разберём, как в Linux устроены пользователи и группы, как создать пользователя, выдать ему права администратора через sudo, посмотреть список пользователей и удалить лишних. Все команды мы проверили на тестовом сервере с Debian 12.
Как устроены пользователи и группы
Linux с самого начала создавался как система, за которой одновременно работают много людей, поэтому каждое действие в ней выполняется от имени какого-то пользователя. Для системы пользователь это прежде всего число, UID. Имя вроде ivan нужно людям, а ядро проверяет права по номеру. Пользователь с UID 0 называется root, и ядро разрешает ему всё, независимо от прав на файлы. Обычные пользователи в Debian и Ubuntu получают номера начиная с 1000, а номера ниже заняты служебными учётными записями. Под ними работают программы, например веб-сервер или база данных, и войти под ними на сервер нельзя.
Сведения о пользователях хранятся в обычных текстовых файлах. В /etc/passwd для каждого пользователя записаны имя, UID, номер основной группы, домашняя папка и оболочка, которая запускается при входе. Пароли лежат отдельно в файле /etc/shadow, причём не сами пароли, а их хэши, и прочитать этот файл может только root. Такое разделение появилось потому, что /etc/passwd должен быть доступен для чтения всем программам, а хэши паролей показывать всем нельзя.
Группы позволяют выдавать права не каждому пользователю по отдельности, а сразу нескольким. Предположим, что папка с сайтом должна быть доступна для записи трём разработчикам. Вместо того чтобы настраивать права для каждого, их добавляют в одну группу и дают права этой группе. Тем же способом в Debian и Ubuntu выдают права администратора. Все участники группы sudo могут выполнять команды от имени root, если предварят их словом sudo и введут свой пароль. Это и есть главная причина заводить отдельного пользователя. Вы работаете с обычными правами и не сломаете систему случайной командой, а когда действительно нужно что-то изменить, сознательно пишете sudo. Кроме того, в журнале остаётся запись, кто и какую команду выполнил с правами администратора.
Что понадобится
- Подключение к серверу по SSH под пользователем
root, например через Termius. - Сервер с Debian или Ubuntu. Команды
adduserиdeluserв этой статье есть только в этих системах, для остальных мы приводим замену.
1. Создайте пользователя
В Debian и Ubuntu удобнее всего команда adduser. Она сама создаст домашнюю папку, скопирует в неё стандартные настройки и задаст вопросы о пароле.
adduser ivanКоманда попросит дважды ввести пароль. Символы при вводе не отображаются, это нормально. Затем она предложит указать полное имя, номер комнаты и телефоны. Эти поля можно оставить пустыми, просто нажимая Enter, а в конце подтвердить данные ответом Y.

adduser создал пользователя, группу и домашнюю папку
Если команды adduser нет
В других дистрибутивах, например AlmaLinux или Rocky Linux, пользователя создают командой useradd, а пароль задают отдельно. Параметр -m создаёт домашнюю папку, а -s назначает оболочку.
useradd -m -s /bin/bash ivan
passwd ivan2. Выдайте права sudo
На наших серверах с Debian 12 программа sudo по умолчанию не установлена, поэтому сначала поставьте её. Если команда sudo на вашем сервере уже есть, этот шаг можно пропустить.
apt update && apt install -y sudoТеперь добавьте пользователя в группу sudo и проверьте, что он в неё попал.
usermod -aG sudo ivan
id ivanВ выводе команды id в списке groups должна появиться группа 27(sudo). Чтобы убедиться, что права работают, переключитесь на нового пользователя и выполните любую команду через sudo.
su - ivan
sudo whoamisudo попросит пароль пользователя ivan, а не root. Если команда вывела root, права администратора у пользователя есть. Вернуться обратно к root можно командой exit.

Пользователь в группе sudo, команда выполнилась от имени root
Теперь можно подключаться к серверу по SSH под новым пользователем, например ssh ivan@IP-адрес-сервера. Мы проверили, что вход с паролем на нашем образе Debian 12 работает сразу. Подробнее о группах и о том, как убрать пользователя из sudo, рассказано в статье про команду usermod.
Следующий шаг для безопасности
Когда вход под новым пользователем проверен, настройте для него вход по SSH-ключу и запретите вход под root. Как это сделать, рассказано в статье про SSH-ключи.
3. Посмотрите, какие пользователи есть на сервере
Полный список учётных записей хранится в /etc/passwd, но вместе с людьми там перечислены десятки служебных пользователей. Чтобы увидеть только обычных, отберите строки с UID от 1000.
# Имя, UID, домашняя папка и оболочка обычных пользователей
awk -F: '$3>=1000 && $3<65534 {print $1, $3, $6, $7}' /etc/passwd
# Кто входит в группу sudo
getent group sudo
На сервере два обычных пользователя, права sudo только у ivan
Ещё несколько полезных команд.
# Группы пользователя
groups ivan
# Кто сейчас подключён к серверу
who
# История входов на сервер
last -n 104. Смените пароль пользователя
Root может задать новый пароль любому пользователю. Обычный пользователь меняет свой пароль той же командой без имени.
# Пароль для пользователя ivan
passwd ivan
# Свой пароль
passwd5. Удалите пользователя
Команда deluser с параметром --remove-home удалит пользователя вместе с его домашней папкой и заданиями cron.
deluser --remove-home anna
Пользователь и его домашняя папка удалены
В системах без deluser используется userdel -r anna. Если у пользователя нужно только отобрать права администратора, удалять его не обязательно. Достаточно убрать его из группы sudo.
deluser ivan sudoПеред удалением сохраните нужные файлы
--remove-home безвозвратно удаляет всё, что лежит в папке /home/имя. Если там остались проекты или ключи, сначала скопируйте их.
Частые вопросы
sudo: command not found
Программа sudo не установлена. Выполните от имени root команду apt install -y sudo. Если вы уже работаете под обычным пользователем, сначала переключитесь на root командой su - и введите пароль root.
ivan is not in the sudoers file
Пользователь не входит в группу sudo. Добавьте его командой usermod -aG sudo ivan от имени root. Изменение начинает действовать после нового входа, поэтому пользователю нужно выйти из сессии и подключиться заново.
Чем su отличается от sudo
su - имя полностью переключает вас на другого пользователя и спрашивает его пароль. sudo команда выполняет одну команду от имени root и спрашивает ваш пароль. Поэтому для работы с sudo не нужно никому сообщать пароль root, а сам вход под root можно вообще запретить.
Пользователь не может подключиться по SSH
- Проверьте, что пароль задан, командой
passwd -S ivan. Во второй колонке должно бытьP. - Проверьте, что у пользователя обычная оболочка, а не
/usr/sbin/nologin. Её видно в последнем поле строки пользователя в/etc/passwd. - Если в настройках SSH отключён вход по паролю, пользователю нужен SSH-ключ.
Наши ресурсы
Telegram-канал: https://t.me/f3cloud_news
Официальный сайт: https://f3cloud.com