Linux #Linux #Ubuntu #Терминал #Пользователи #Сервер #Безопасность

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

Как в терминале Ubuntu и Debian создать пользователя, дать ему права sudo, сменить пароль, заблокировать и удалить. Чем adduser отличается от useradd, почему без -a в usermod теряются группы и как разрешить одну команду без пароля.

9 минут 2
Пользователи и sudo в Linux
Содержание
  1. 1Как создать пользователя: adduser
  2. useradd: если adduser нет
  3. Где это всё записано
  4. 2Как дать пользователю права sudo
  5. Главная ошибка: usermod -G без -a
  6. Разрешить одну команду без пароля
  7. 3Пароли
  8. 4Заблокировать, не удаляя
  9. 5Переименовать пользователя
  10. 6Группы
  11. 7Как удалить пользователя
  12. 8Переключиться на другого пользователя
  13. 9Пользователь для SSH
  14. 10Шпаргалка
  15. 11Главные советы
  16. 12Частые вопросы
  17. Как создать пользователя в Ubuntu?
  18. Как дать пользователю права sudo?
  19. Почему пишет «is not in the sudoers file»?
  20. Чем adduser отличается от useradd?
  21. Как посмотреть список пользователей в Linux?
  22. Как удалить пользователя вместе с домашней папкой?
  23. Как разрешить команду через sudo без пароля?

Новый сервер почти всегда начинается с одного и того же: у вас есть root или пользователь из установщика, а работать нужно под отдельной учётной записью. Сайту нужен свой пользователь, коллеге — свой доступ, а входить по SSH под root вообще плохая идея. Всё это делается пятью-шестью командами, но в них легко ошибиться: одна пропущенная буква в usermod молча удаляет пользователя из всех групп.

Ниже — по порядку: создать пользователя, дать ему sudo, управлять паролем, заблокировать и удалить. Все команды и выводы проверены на Ubuntu 24.04, в Debian они такие же.

Как создать пользователя: adduser

В Ubuntu и Debian самый удобный способ — adduser. Он задаёт вопросы по шагам и сам делает всё нужное: домашнюю папку, группу, оболочку bash и пароль.

Терминал
sudo adduser ivan
Вывод
info: Adding user `ivan' ...
info: Selecting UID/GID from range 1000 to 59999 ...
info: Adding new group `ivan' (1002) ...
info: Adding new user `ivan' (1002) with group `ivan (1002)' ...
info: Creating home directory `/home/ivan' ...
info: Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for ivan
Enter the new value, or press ENTER for the default
    Full Name []: Ivan Petrov
    Room Number []:
    Work Phone []:
    Home Phone []:
    Other []:
Is the information correct? [Y/n] y
info: Adding new user `ivan' to supplemental / extra groups `users' ...
info: Adding user `ivan' to group `users' ...

Пароль при вводе не отображается — даже звёздочками. Это нормально. Вопросы про комнату и телефоны можно пропустить клавишей Enter, полное имя — тоже.

useradd: если adduser нет

useradd — низкоуровневая команда, которая есть в любом дистрибутиве, включая Fedora, Arch и CentOS. Но по умолчанию она делает минимум: без ключей не создаст домашнюю папку, не задаст оболочку bash и пароль. Правильный вызов:

Терминал
sudo useradd -m -s /bin/bash -c "Ivan Petrov" ivan
sudo passwd ivan

Здесь -m — создать домашнюю папку, -s — оболочка, -c — комментарий (полное имя). Пока не выполнен passwd, учётная запись заблокирована: passwd -S показывает статус L, войти с паролем нельзя.

adduseruseradd
Где естьDebian, Ubuntu, Mintвезде
Домашняя папкасоздаёттолько с -m
Оболочка bashдатолько с -s /bin/bash
Парольспрашивает сразуотдельно через passwd
Для скриптовнеудобен — задаёт вопросыудобен

Где это всё записано

Учётные записи хранятся в обычном текстовом файле /etc/passwd:

Терминал
grep ivan /etc/passwd
Вывод
ivan:x:1002:1002:Ivan Petrov,,,:/home/ivan:/bin/bash

Поля через двоеточие: имя, x (пароль лежит отдельно, в /etc/shadow), UID, номер основной группы, полное имя, домашняя папка и оболочка. Обычные пользователи в Ubuntu получают UID от 1000, системные (www-data, sshd) — меньше.

Список всех «живых» пользователей без системных:

Терминал
awk -F: '$3>=1000 && $3<65534 {print $1, $6, $7}' /etc/passwd

Редактировать /etc/passwd руками не нужно: для всего есть команды ниже.

Как дать пользователю права sudo

В Ubuntu и Debian администраторы — это все, кто состоит в группе sudo. Добавить в неё:

Терминал
sudo usermod -aG sudo ivan

Проверить:

Терминал
groups ivan
Вывод
ivan : ivan sudo users

Пока пользователь не в группе, на любую команду с sudo он получает:

Вывод
ivan is not in the sudoers file.

В Fedora, CentOS, Rocky и AlmaLinux та же роль у группы wheel: sudo usermod -aG wheel ivan.

Посмотреть, что именно пользователю разрешено:

Терминал
sudo -l -U ivan
Пример вывода
User ivan may run the following commands on server:
    (ALL : ALL) ALL

(ALL : ALL) ALL — можно всё, от имени любого пользователя.

Главная ошибка: usermod -G без -a

Ключ -a (append) значит «добавить к существующим группам». Без него usermod -G заменяет все дополнительные группы списком из команды. Я проверил на тестовом пользователе:

Вывод
$ id petr
uid=30034(petr) gid=30034(petr) groups=30034(petr),100(users)
$ sudo usermod -G sudo petr
$ id petr
uid=30034(petr) gid=30034(petr) groups=30034(petr),27(sudo)

Группа users пропала без единого предупреждения. На реальном сервере так теряют доступ к docker, www-data или к общей папке Samba. Пишите всегда -aG вместе.

Разрешить одну команду без пароля

Иногда пользователю не нужен полный sudo — например, деплой-скрипту достаточно перезапускать nginx. Права настраиваются отдельным файлом в /etc/sudoers.d/, и редактировать его нужно только через visudo:

Терминал
sudo visudo -f /etc/sudoers.d/deploy

Содержимое файла:

Текст
deploy ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx

Пользователь deploy сможет выполнять ровно sudo systemctl restart nginx, без пароля, и больше ничего. Путь к программе указывайте полный — узнать его можно командой which systemctl.

Пароли

Сменить свой пароль — просто passwd. Чужой — через sudo, старый пароль при этом не спрашивается:

Терминал
sudo passwd ivan

Статус пароля:

Терминал
sudo passwd -S anna
Вывод
anna P 2026-10-27 0 99999 7 -1

Вторая колонка — главное: P — пароль задан, L — учётная запись заблокирована, NP — пароля нет. Дальше — дата смены и сроки.

Заставить пользователя сменить пароль при следующем входе — удобно, когда вы выдаёте временный:

Терминал
sudo passwd -e ivan

Подробности о сроках действия показывает chage:

Терминал
sudo chage -l anna
Вывод
Last password change                    : Oct 27, 2026
Password expires                    : never
Password inactive                    : never
Account expires                        : never
Minimum number of days between password change        : 0
Maximum number of days between password change        : 99999
Number of days of warning before password expires    : 7

Учётная запись, которая сама отключится в определённый день — например, для временного подрядчика:

Терминал
sudo chage -E 2026-12-31 ivan

Заблокировать, не удаляя

Если сотрудник ушёл, а его файлы ещё нужны, учётную запись лучше заблокировать:

Терминал
sudo usermod -L ivan          # заблокировать пароль
sudo usermod -U ivan          # разблокировать

После -L статус в passwd -S меняется с P на L. Но важно: блокировка пароля не закрывает вход по SSH-ключу. Чтобы закрыть всё, дополнительно отключите оболочку или срок действия:

Терминал
sudo usermod -s /usr/sbin/nologin ivan
sudo chage -E 0 ivan

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

Сменить имя и заодно домашнюю папку:

Терминал
sudo usermod -l petr2 petr
sudo usermod -d /home/petr2 -m petr2

Первая команда меняет имя, вторая — переносит домашнюю папку (-m перемещает содержимое). Делайте это, когда пользователь не залогинен и его процессы не запущены.

Группы

Группы удобны, чтобы дать нескольким людям доступ к одной папке:

Терминал
sudo groupadd editors                # создать группу
sudo usermod -aG editors anna        # добавить пользователя
getent group editors                 # кто в группе
sudo gpasswd -d anna editors         # убрать из группы
Вывод getent
editors:x:30035:anna

Дальше папке назначается группа (sudo chgrp -R editors /srv/docs) и права на запись для группы. Как устроены права и что значат цифры вроде 775 — в калькуляторе chmod.

Как удалить пользователя

Терминал
sudo deluser ivan                     # удалить, домашняя папка останется
sudo deluser --remove-home ivan       # удалить вместе с /home/ivan

Убрать из группы, не удаляя самого пользователя — тоже deluser, но с двумя именами:

Терминал
sudo deluser ivan sudo
Вывод
info: Removing user `ivan' from group `sudo' ...

В других дистрибутивах — sudo userdel -r ivan (ключ -r удаляет домашнюю папку).

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

  • 👤 su - ivan — войти под пользователем ivan (нужен его пароль). Дефис загружает его окружение и переходит в его домашнюю папку.
  • 🔑 sudo -i -u ivan — то же, но с вашим паролем, если у вас есть sudo.
  • ▶️ sudo -u www-data php script.php — выполнить одну команду от имени другого пользователя. Так удобно запускать скрипты сайта с правами сайта, а не root.

Как войти под самим root и стоит ли это делать — в отдельной статье root в Ubuntu.

Пользователь для SSH

Чтобы новый пользователь входил по ключу, его публичный ключ кладётся в ~/.ssh/authorized_keys. Проще всего — с вашего компьютера:

Терминал
ssh-copy-id ivan@server

После этого вход под root по SSH можно отключить совсем. Как это сделать, а заодно настроить брандмауэр и fail2ban, — в статье Защита Ubuntu Server.

Шпаргалка

ЗадачаКоманда
Создать пользователяsudo adduser имя
Создать (любой дистрибутив)sudo useradd -m -s /bin/bash имя && sudo passwd имя
Дать sudosudo usermod -aG sudo имя
Проверить группыgroups имя или id имя
Что разрешено в sudosudo -l -U имя
Сменить парольsudo passwd имя
Сменить пароль при входеsudo passwd -e имя
Заблокировать / разблокироватьsudo usermod -L имя / -U
Убрать из группыsudo deluser имя группа
Удалить с домашней папкойsudo deluser --remove-home имя

Главные советы

  • У каждого — свой пользователь. Отдельные учётки для людей, сайтов и бэкапов: видно, кто что сделал, и права не смешиваются.
  • Всегда -aG, а не -G. Без -a usermod молча удалит пользователя из всех остальных групп.
  • Перезайдите после добавления в группу. Новые права применяются только при новом входе.
  • Не давайте полный sudo без нужды. Одна команда без пароля через /etc/sudoers.d/ безопаснее.
  • sudoers — только через visudo. Он проверит синтаксис, и вы не сломаете sudo для всех.
  • Ушёл сотрудник — сначала блокировка. usermod -L, nologin и chage -E 0, а удаление — когда файлы больше не нужны.

Частые вопросы

Как создать пользователя в Ubuntu?

Командой sudo adduser имя. Она создаст домашнюю папку и группу, спросит пароль и полное имя. В других дистрибутивах используйте sudo useradd -m -s /bin/bash имя, а пароль задайте командой sudo passwd имя.

Как дать пользователю права sudo?

Добавьте его в группу sudo: sudo usermod -aG sudo имя. В Fedora и CentOS группа называется wheel. Права заработают после того, как пользователь выйдет и войдёт снова.

Почему пишет «is not in the sudoers file»?

Пользователь не состоит в группе sudo и не указан в /etc/sudoers. Добавьте его командой sudo usermod -aG sudo имя от имени администратора или root. Если вы только что это сделали — перезайдите в систему.

Чем adduser отличается от useradd?

adduser — удобная обёртка в Debian и Ubuntu: задаёт вопросы и сама создаёт домашнюю папку, группу и пароль. useradd есть во всех дистрибутивах, но без ключей -m и -s создаёт пользователя без домашней папки и с оболочкой sh, а пароль задаётся отдельно.

Как посмотреть список пользователей в Linux?

Все учётные записи, включая системные, — getent passwd или cat /etc/passwd. Только обычных пользователей: awk -F: '$3>=1000 && $3<65534 {print $1}' /etc/passwd. Кто сейчас в системе — who.

Как удалить пользователя вместе с домашней папкой?

sudo deluser --remove-home имя в Ubuntu и Debian или sudo userdel -r имя в других дистрибутивах. Перед этим сохраните нужные файлы и проверьте, не запущены ли от него процессы: ps -u имя.

Как разрешить команду через sudo без пароля?

Создайте файл командой sudo visudo -f /etc/sudoers.d/имя и добавьте строку вида имя ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx. Пользователь сможет выполнять без пароля только эту команду.

Статья помогла?

Комментарии

Пока никто не написал. Будьте первым — вопрос или свой опыт одинаково полезны.

Комментарий появится после проверки. Ссылки и реклама не публикуются.