Создание пользователя в Ubuntu: права sudo и группы

Вот ты поставил себе свежую Ubuntu (или тебе её воткнули на сервере, а ты теперь отвечаешь за этот зоопарк) — и тут сразу встаёт вопрос: как грамотно добавить нового пользователя, чтобы не дать ему сломать всё подряд, но и не ограничить настолько, что даже ls не выполнит? В этой статье разберёмся, как создавать пользователей, выдавать им права sudo, добавлять в группы и не наступить на грабли.

Почему это важно?

Казалось бы, что сложного: adduser — и всё. Но если дать кому-то sudo бездумно, можно получить весёлую историю на тему «а кто удалил /etc?». А если не дать нужных прав — человек не сможет даже обновить пакеты. Короче, правильная работа с пользователями — это базовый навык любого, кто трогает Linux-серверы.

Что требуется

  • ОС: Ubuntu 20.04/22.04 LTS (или новее, но команды те же для большинства дистрибутивов)
  • Доступ: root или пользователь с sudo
  • Железо: Любое, даже виртуалка на 512 МБ ОЗУ

Пошаговая инструкция: создание пользователя, sudo и группы

  1. Создаём пользователя
    sudo adduser vasya

    adduser — более дружелюбная обёртка над useradd. Она сразу создаёт домашнюю директорию, спрашивает пароль и всякие данные. Можно просто нажимать Enter, если неохота заполнять поля.

  2. Добавляем пользователя в группу sudo
    sudo usermod -aG sudo vasya

    Классика. Группа sudo даёт права запускать команды от имени root через sudo. Без -aG можно случайно выкинуть пользователя из всех групп, так что не забываем про -a (append).

  3. Проверяем, что всё ок
    id vasya

    В выводе должна быть sudo среди групп.

  4. Выдаём права на другие группы (по необходимости)
    sudo usermod -aG docker vasya

    Если нужно, чтобы пользователь мог запускать Docker без sudo, добавляем в группу docker. Аналогично — для www-data, adm и т.д.

  5. Проверяем sudo
    su - vasya
    sudo whoami

    Если всё хорошо, увидите root в выводе.

Использование: команды и варианты

  • Создать пользователя без домашней директории:
    sudo adduser --no-create-home bob
  • Создать пользователя с определённым shell:
    sudo adduser --shell /bin/zsh alice
  • Добавить сразу в несколько групп:
    sudo usermod -aG sudo,docker,adm vasya
  • Посмотреть группы пользователя:
    groups vasya
  • Сделать пользователя админом только на определённые команды:
    sudo visudo — и прописываем, например:
    vasya ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
  • Удалить пользователя:
    sudo deluser vasya
    sudo deluser --remove-home vasya — чтобы снести ещё и домашнюю папку.

Ошибки и как делать не надо

  • Не давайте всем подряд sudo! Если вам просто нужен доступ к логам — добавьте пользователя в adm или journalctl.
  • Не используйте useradd без понимания, что он делает. Это низкоуровневая команда, она не создаёт домашнюю директорию по умолчанию и не настраивает всё как adduser.
  • Не забывайте про -a в usermod -aG. Без него вы перезапишете список групп пользователя.
  • Не редактируйте /etc/sudoers напрямую, используйте visudo. Это спасёт от синтаксических ошибок и брика системы.

Реальный пример из жизни

Был у меня сервер, где надо было дать фронтендеру только права на перезапуск Nginx, чтобы не дергать меня по каждому чиху. Создал пользователя:

sudo adduser frontend
sudo usermod -aG www-data frontend
sudo visudo

В visudo добавил строчку:

frontend ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx

Всё, человек доволен — может деплоить и перезапускать сервис, а базу или систему не сломает.

Заключение

Управление пользователями и правами — не такая уж скучная тема, как кажется. Грамотная настройка экономит кучу времени и нервов, а ещё спасает от случайных (и не очень) фейлов. Не ленитесь читать man-страницы и гайды на официальном Ubuntu Community — там всегда есть что-то полезное. И помните: sudo — это не игрушка!

Хотите прочитать больше про Разное?
Отзывов нет.

Ваш отзыв

Пожалуйста, заполните поля снизу и добавьте отзыв!.
Имя *
E-mail *
Сайт
Сообщение *