LinuxRuLinux без лишней теории
Учётные записи

Пользователи и sudo в Linux: добавить пользователя, группы и права

Редакция LinuxRu7 мин чтенияИнструкции

Чтобы добавить пользователя в Linux, выполните sudo adduser имя в Debian и Ubuntu или sudo useradd -m имя и затем sudo passwd имя в Fedora и Arch. Права sudo выдаются добавлением в группу: sudo usermod -aG sudo имя в Debian и Ubuntu, sudo usermod -aG wheel имя в Fedora и Arch. Ниже тонкая настройка через visudo, sudo без пароля для отдельных команд и восстановление доступа, если что-то сломалось.

Пользователи и sudo в Linux: добавить пользователя, группы и права
Фото: Solijon Solayev, CC BY-SA 4.0, Wikimedia Commons
Содержание
  1. Новый пользователь
  2. Группы
  3. Права sudo
  4. visudo
  5. Без пароля
  6. sudo-rs
  7. Пароль root
  8. Удаление
  9. Восстановление
  10. Частые вопросы

Как добавить пользователя: adduser и useradd

В Linux две похожие команды. useradd - низкоуровневая утилита из shadow-utils, она есть везде и делает ровно то, что указано в опциях. adduser в Debian и Ubuntu - дружелюбная обёртка: создаёт домашний каталог, копирует шаблоны из /etc/skel, спрашивает пароль и имя. В Fedora adduser просто ссылка на useradd, а в Arch его нет.

# Debian, Ubuntu: интерактивно
sudo adduser ivan
# Fedora, Arch и любой другой дистрибутив
sudo useradd -m -s /bin/bash ivan
sudo passwd ivan

Флаг -m создаёт домашний каталог, без него пользователь появится, но /home/ivan не будет. -s задаёт оболочку: в некоторых системах по умолчанию стоит /bin/sh, и без флага в терминале не будет привычного bash. Сразу добавить в группы можно ключом -G, например -G wheel,video.

Проверить, что всё создано:

id ivan
getent passwd ivan
ls -ld /home/ivan

Если вы пока путаетесь в командах терминала, начните со статьи об основных командах Linux, а права на файлы и каталоги разобраны отдельно в материале про chmod и chown.

Группы пользователя: добавить, убрать, проверить

Группы в Linux открывают доступ к устройствам и функциям: сокет Docker, последовательные порты, виртуальные машины, права администратора. Добавить пользователя в группу:

sudo usermod -aG docker ivan
# убрать из группы
sudo gpasswd -d ivan docker
# посмотреть группы
groups ivan

Ключ -a обязателен. Команда usermod -G docker ivan без него заменит весь список дополнительных групп на одну docker, и пользователь потеряет, например, sudo. Это одна из самых частых причин внезапного "is not in the sudoers file".

Новые группы применяются при следующем входе в систему. Выйдите из сеанса и войдите снова или откройте новую оболочку через su - ivan. Перезагрузка не нужна.

ЗачемDebian, UbuntuFedoraArch
Права администратора через sudosudowheelwheel
Docker без sudodockerdockerdocker
Виртуальные машины libvirtlibvirtlibvirtlibvirt
Последовательные порты, Arduinodialoutdialoutuucp
Чтение системного журналаadm, systemd-journalwheel, systemd-journalwheel, systemd-journal

Группа docker фактически равна root: через сокет можно смонтировать любой каталог в контейнер. Безопаснее вариант без root, о нём статья про Docker Rootless.

Добавить пользователя в sudo

В Debian и Ubuntu sudo получают все члены группы sudo, в Fedora группа wheel:

# Debian, Ubuntu
sudo usermod -aG sudo ivan
# Fedora, Arch
sudo usermod -aG wheel ivan

В Arch этого мало: строка для wheel в sudoers по умолчанию закомментирована, а сам пакет sudo может быть не установлен. Поставьте его, откройте файл через visudo и раскомментируйте строку %wheel ALL=(ALL:ALL) ALL:

pacman -S sudo
EDITOR=nano visudo

Debian с паролем root

Если при установке Debian 13 вы задали пароль root, установщик не добавит вашего пользователя в sudo, а иногда и не поставит sudo. Права выдают из-под root:

su -
apt install sudo
usermod -aG sudo ivan
exit

После повторного входа проверьте: sudo -l покажет, что вам разрешено, а sudo whoami должна вывести root.

Visudo и каталог sudoers.d

Файл /etc/sudoers правят только через visudo. Он открывает копию, при сохранении проверяет синтаксис и не даст записать файл с ошибкой. Ошибка в sudoers, сохранённая обычным редактором, отключает sudo для всех, и чинить придётся через root или режим восстановления.

Удобнее не трогать основной файл, а класть правила в отдельные файлы каталога /etc/sudoers.d/. Их легко удалить, и они не конфликтуют с обновлениями пакета:

sudo visudo -f /etc/sudoers.d/ivan
# проверить все файлы
sudo visudo -c

Имя файла не должно содержать точку и заканчиваться на ~, иначе sudo его пропустит. Права выставит сам visudo, правильные это 0440. Редактор выбирается переменной: sudo EDITOR=nano visudo. Если nano для вас непривычен, загляните в статью о редакторе nano.

Синтаксис правила

# пользователь, хосты=(от чьего имени) команды
ivan ALL=(ALL:ALL) ALL
# группа обозначается знаком %
%devops ALL=(ALL) ALL
# только перезапуск nginx от root
deploy ALL=(root) /usr/bin/systemctl restart nginx

Пути к командам указывайте полностью, узнать их помогает command -v systemctl. Если правил для пользователя несколько, применяется последнее подходящее. Файлы из sudoers.d подключаются в конце основного файла, поэтому их правила обычно перекрывают групповые.

Sudo без пароля: безопасный вариант

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

# всё без пароля: только если понимаете риск
ivan ALL=(ALL) NOPASSWD: ALL
# лучше: без пароля только конкретные команды
ivan ALL=(root) NOPASSWD: /usr/bin/systemctl restart nginx, /usr/bin/apt update

Если раздражает частый ввод пароля, сначала попробуйте увеличить время, на которое sudo запоминает ввод. Строка Defaults timestamp_timeout=30 в отдельном файле sudoers.d растягивает его до 30 минут. Пароль остаётся, а просить его будут заметно реже. Для автоматизации на серверах выделяйте отдельного пользователя с NOPASSWD только на нужные команды, а вход для него разрешайте по ключу, как описано в статье о защите SSH.

Sudo-rs в Ubuntu 26.04: что поменялось

Начиная с Ubuntu 25.10 команда sudo по умолчанию запускает sudo-rs, переписанную на Rust реализацию. В Ubuntu 26.04 LTS так и осталось. Для пользователя почти ничего не изменилось: тот же синтаксис, тот же sudoers, те же группы. Отличия, которые встречаются на практике:

  • при вводе пароля показываются звёздочки; вернуть тишину можно строкой Defaults !pwfeedback;
  • шаблоны со звёздочкой внутри аргументов команд в sudoers не поддерживаются, такие правила просто не сработают;
  • часть редких опций классического sudo не реализована, в том числе некоторые переменные окружения.

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

sudo --version
sudo update-alternatives --config sudo

Классический sudo в Ubuntu 26.04 доступен как sudo.ws. Canonical планирует оставить только sudo-rs в следующих выпусках, поэтому правила с шаблонами в аргументах лучше переписать сразу.

Пароль root: сменить, включить, заблокировать

В Ubuntu и Fedora с пользователем-администратором пароль root не задан и вход под root заблокирован. Работать от root по-прежнему можно через sudo:

# оболочка root через sudo
sudo -i
# задать или сменить пароль root
sudo passwd root
# снова заблокировать вход по паролю
sudo passwd -l root

Пароль root нужен, если вы хотите пользоваться su - или входить в режим восстановления, который его спрашивает. Разница простая: su - спрашивает пароль root, sudo -i ваш собственный. Свой пароль меняют командой passwd без аргументов, а про требования к паролям и срок их действия есть статья о passwd.

Переименовать, заблокировать или удалить пользователя

# заблокировать вход и снять блокировку
sudo usermod -L ivan
sudo usermod -U ivan
# переименовать вместе с домашним каталогом
sudo usermod -l petr -d /home/petr -m ivan
# удалить пользователя, домашний каталог остаётся
sudo userdel ivan
# удалить вместе с домашним каталогом и почтой
sudo userdel -r ivan

usermod -L блокирует только пароль, вход по SSH-ключу останется. Чтобы закрыть учётную запись полностью, добавьте sudo chage -E 0 ivan или смените оболочку на /usr/sbin/nologin. Перед userdel -r сохраните нужные файлы, корзины здесь нет. Если пользователь ещё в системе, удаление откажет: завершите его процессы через sudo pkill -u ivan. В Debian и Ubuntu есть аналог sudo deluser --remove-home ivan.

Сломался sudoers или пропали права: как вернуть

Если после правки sudo пишет об ошибке синтаксиса или пользователь пропал из группы, есть несколько путей, от простого к сложному:

  1. Если задан пароль root: su -, затем visudo или usermod -aG sudo ivan.
  2. В Ubuntu и других системах с polkit часто срабатывает pkexec visudo: polkit спросит пароль администратора отдельно от sudo.
  3. Режим восстановления: в меню GRUB выберите "Advanced options" и recovery mode, затем root shell. Корень может быть смонтирован только для чтения, перемонтируйте его командой mount -o remount,rw /.
  4. Загрузка с Live USB, монтирование корня и правка файла с указанием пути, например visudo -f /mnt/etc/sudoers.

Перед экспериментами держите открытой вторую сессию с sudo -i: если правило окажется ошибочным, вы исправите его из этой сессии. Полное описание формата есть в man sudoers.

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

Как добавить пользователя в sudo в Ubuntu?

Выполните sudo usermod -aG sudo имя и попросите пользователя выйти из сеанса и войти снова. Проверка: sudo whoami должна вывести root.

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

В Debian и Ubuntu adduser интерактивный: создаёт домашний каталог, спрашивает пароль и данные. useradd делает только то, что указано в опциях, поэтому с ним нужны -m и отдельная команда passwd.

Как сделать sudo без пароля?

Создайте файл через sudo visudo -f /etc/sudoers.d/имя и добавьте строку имя ALL=(ALL) NOPASSWD: ALL. Безопаснее разрешать без пароля только конкретные команды с полным путём.

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

Пользователь не состоит в группе sudo или wheel либо новые группы ещё не применились. Проверьте командой groups, добавьте через usermod -aG и перелогиньтесь.

Как узнать, какие пользователи есть в системе?

Команда getent passwd выводит все учётные записи. Обычные пользователи обычно имеют UID от 1000, системные меньше.

Документация и источники

Читайте также

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