Битлента
Windows, macOS, Android, iOS6 мин чтения·

Пользователи и группы в Ubuntu и Debian: создать учётную запись и добавить в группу

Как создать пользователя и добавить его в группу в Ubuntu и Debian: adduser, usermod -aG, команды id и groups, зачем нужны группы и почему нужен перевход.

Кратко

Нового пользователя создаёт sudo adduser имя, в дополнительную группу добавляет sudo usermod -aG группа имя. Ключ -a принципиален: без него остальные группы будут заменены. Изменения вступают в силу после нового входа.

Как Linux различает пользователей и зачем нужны группы

На домашнем компьютере с Ubuntu или Debian часто одна учётная запись, но система обычно работает минимум с двумя типами: обычными пользователями и служебными. Каждой учётной записи соответствует числовой идентификатор UID, а каждой группе — GID. Права на файлы привязываются к этим числам, а имена нужны для удобства.

Группа — это набор пользователей, которым выдан общий доступ к чему-то: к принтеру, к аудиоустройствам, к съёмным дискам, к административным действиям. Вместо того чтобы настраивать права для каждого человека отдельно, администратор добавляет его в нужную группу. Поэтому многие вопросы вида «почему программа не видит устройство» связаны с членством в группе.

Информация лежит в текстовых файлах: /etc/passwd хранит учётные записи, /etc/group — группы, а /etc/shadow — хеши паролей, доступ к нему ограничен. Править эти файлы вручную не нужно и рискованно: для этого есть команды, которые сохраняют согласованность записей.

Как посмотреть текущих пользователей и свои группы

Прежде чем что-то менять, посмотрите состояние. Команды чтения безопасны и ничего не затрагивают.

  • id — ваш UID, основная группа и список всех групп с числовыми идентификаторами;
  • groups — только имена групп текущего пользователя;
  • groups имя — группы другого пользователя;
  • getent group имя-группы — состав группы, то есть кто в неё входит;
  • getent passwd — список учётных записей, включая служебные;
  • who и w — кто сейчас вошёл в систему.

В выводе id вы увидите несколько групп, и это нормально. На рабочих станциях Ubuntu и Debian обычно встречаются группы вроде sudo, audio, video, plugdev, lpadmin, netdev. Набор зависит от версии дистрибутива и окружения, а точные имена полезно сверять через getent group. Если нужной группы в списке нет, значит, пользователь в ней не состоит, а не то, что она отсутствует в системе: проверить существование можно тем же getent.

Если нужен полный список групп системы, выполните getent group. Он покажет не только файл /etc/group, но и записи из других источников, если система их использует, например из сетевого каталога. На домашнем компьютере вывод обычно совпадает с содержимым файла.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно

Создание пользователя: adduser и useradd

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

Простая последовательность действий:

  1. Выполните sudo adduser имя. Система предложит придумать пароль и ввести необязательные сведения вроде полного имени; их можно пропустить нажатием Enter.
  2. Проверьте результат командой id имя — должны появиться UID и основная группа.
  3. Убедитесь, что создан каталог /home/имя.
  4. При необходимости задайте пароль позже через sudo passwd имя.

Для удаления служит sudo deluser имя. Домашний каталог при этом по умолчанию остаётся, а ключ --remove-home удалит и его. Применяйте этот ключ осторожно: файлы невозможно вернуть. Если вы только изучаете команды, потренируйтесь на тестовой учётной записи, которую создали сами для проверки, и не трогайте основную.

В графической среде те же действия доступны в настройках, в разделе пользователей; точное название пункта зависит от окружения рабочего стола.

Отдельно стоит сказать про служебные учётные записи. В /etc/passwd вы увидите десятки имён, от которых не нужно входить в систему: они нужны отдельным службам, чтобы те работали с ограниченными правами. Не удаляйте и не изменяйте их без понимания назначения, иначе соответствующая служба перестанет запускаться. Обычные пользователи в современных дистрибутивах получают идентификаторы, как правило, начиная с 1000, и это помогает быстро отличить людей от служб.

usermod -aG: как добавить пользователя в группу правильно

Основная команда для изменения состава групп — usermod. Для добавления в дополнительную группу нужны оба ключа: sudo usermod -aG группа имя. Здесь -G задаёт список дополнительных групп, а -a означает «добавить к существующим».

Именно из-за ключа -a чаще всего возникают проблемы. Если выполнить usermod -G группа имя без -a, пользователь окажется только в указанной группе, а все прежние дополнительные группы будут потеряны. В худшем случае человек лишится группы sudo и потеряет административный доступ. Поэтому, запомнив команду, проверяйте её перед запуском. Прежде чем менять группы, убедитесь, что у вас остаётся рабочая учётная запись с правами администратора, и сделайте резервную копию важных данных; результат проверьте командой id имя до и после изменения.

Альтернатива в Debian и Ubuntu — sudo adduser имя группа. Она добавляет пользователя в существующую группу и по умолчанию не заменяет остальные.

Частые примеры, где это нужно:

  • lpadmin — управление принтерами через средства CUPS в Ubuntu и Debian;
  • sudo — право запускать команды от имени администратора;
  • dialout — доступ к последовательным портам, актуально при работе с платами и адаптерами;
  • audio и video — доступ к устройствам, в современных окружениях часто выдаётся автоматически.

Выдавая членство, придерживайтесь минимума: чем больше групп, тем шире возможности учётной записи, в том числе у вредоносной программы.

Почему изменения не видны сразу и как проверить

После добавления в группу команда groups в уже открытом терминале может не показывать новую группу. Причина проста: список групп процесс получает при входе в систему и дальше не обновляет. Чтобы изменения вступили в силу, завершите сеанс и войдите снова либо перезагрузитесь. Для быстрой проверки в одном терминале годится su - имя или newgrp группа, но это временное решение для проверки.

Если после перевхода доступа всё равно нет, проверьте по шагам:

  1. getent group имя-группы — есть ли ваше имя в списке участников;
  2. id — отображается ли группа в текущем сеансе;
  3. права на сам файл или устройство: ls -l путь покажет владельца и группу, а о правах рассказано на странице про chmod;
  4. не ограничивает ли доступ другая подсистема, например профиль безопасности приложения.

Пароль и права администратора — отдельная тема. О настройке sudo для обычного пользователя рассказано на странице про сообщение о том, что пользователя нет в файле sudoers.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно
linuxпользователигруппыusermodubuntu

Часто задаваемые вопросы

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