С чего начать Первые шаги трек · 15 ступеней
Linux Labs

Пользователи и группы

5 мин Ubuntu 24.04

Учётные записи и группы Linux; usermod -G без -a заменяет все дополнительные группы пользователя, а не добавляет одну.

Шпаргалка

7 команд Версия для печати
  • id alice uid/gid/группы
  • sudo useradd -m -s /bin/bash bob создать
  • sudo usermod -aG sudo bob добавить в группу (с -a, иначе перезапишет все)
  • sudo passwd bob задать пароль
  • sudo passwd -l bob заблокировать вход по паролю
  • sudo chage -M 90 bob максимальный срок пароля — 90 дней
  • getent group sudo кто в группе

Обзор

Учётка описывается строкой в /etc/passwd, пароль (хэш) — в /etc/shadow, группы — в /etc/group. У пользователя есть первичная группа и список дополнительных.

Последнее поле строки /etc/passwd — оболочка входа: программа, которую система запускает, когда пользователь входит. У людей это обычно /bin/bash, у служб — /usr/sbin/nologin, и войти под ними нельзя. Меняет её usermod -s (см. usermod).

bash
id alice                          # uid, gid, группы
whoami                            # текущий пользователь
getent passwd alice               # запись из passwd (учитывает LDAP/SSSD)
groups alice                      # группы пользователя

Рецепты

2

Управление

bash
sudo useradd -m -s /bin/bash alice    # создать (с домашним каталогом -m и shell)
sudo passwd alice                      # задать пароль
sudo usermod -aG sudo alice            # ДОБАВИТЬ в группу (важно -a, иначе перезапишет!)
sudo usermod -aG docker,www-data alice
sudo usermod -s /usr/sbin/nologin svc  # запретить интерактивный вход (сервисный юзер)
sudo gpasswd -d alice docker           # убрать из группы
sudo userdel -r alice                  # удалить вместе с домашним каталогом
sudo groupadd devs                     # создать группу
sudo groupdel devs                     # удалить группу
adduser bob                            # интерактивная обёртка (Debian/Ubuntu)

Частая ошибка. usermod -G grp без -a заменяет все дополнительные группы пользователя — используй usermod -aG, а не -G. Шаблон нового домашнего каталога — /etc/skel.

Пароли, блокировка, su

bash
sudo passwd -l alice              # заблокировать пароль (вход по паролю запрещён)
sudo passwd -u alice              # разблокировать
sudo usermod -L / -U alice        # то же (lock/unlock)
sudo chage -l alice               # политика срока пароля
sudo chage -M 90 -W 7 alice       # макс. срок 90 дней, предупреждать за 7
sudo chage -E 2026-12-31 alice    # дата истечения учётки
sudo passwd -e alice              # потребовать смену при следующем входе

su - bob                          # стать bob (login-shell, своё окружение)
su -                              # стать root (если знаешь пароль root)
sudo -u postgres -i               # лучше: через sudo, без пароля root (см. sudo)

Системные пользователи (демоны) — обычно uid < 1000, nologin, без пароля (useradd -r).

Неполадки

5

Добавил в группу — не действует

Членство применяется при новом логине. Перелогинься (или newgrp <group> для текущей оболочки). Проверь id.

Случайно перезаписал группы (-G без -a)

Восстанови нужные: usermod -aG sudo,docker alice. Свериться можно по /etc/group (getent group).

Не могу удалить пользователя — «currently used by process»

Заверши его процессы (pkill -u alice, см. processes) или userdel -f.

Вход запрещён, хотя пароль верный

Учётка/пароль заблокированы (passwd -l/chage -E в прошлом) или shell = nologin. Смотри chage -l, getent passwd (последнее поле — shell).

Права на файлы «не той» группы

SGID-каталог наследует группу для НОВЫХ файлов; старые переведи chgrp -R (см. permissions, chmod-chown).

Опасно

userdel -r удаляет домашний каталог и почтовый спул безвозвратно — без резервной копии данные не восстановить. Перед удалением проверь, не остались ли процессы или cron-задачи от этого пользователя (pkill -u, crontab -l -u): userdel без -f откажется удалять учётку с активными процессами, а -f удалит её, даже если процессы остались работать от уже несуществующего UID. После удаления освободившийся UID может быть выдан новому пользователю — файлы, оставшиеся с этим UID на диске, станут «его».

Термины

7
UID
Числовой идентификатор пользователя; имена связываются с идентификаторами через службы разрешения. Ещё встречается в: Docker, useradd, whoami, nologin и ещё 15
GID
Числовой идентификатор группы, используемый в свойствах процессов и файлов. Ещё встречается в: Docker, Capabilities: права root по частям, ls, Сетевая файловая система NFS и ещё 2
эффективный UID effective UID
Идентификатор пользователя процесса, участвующий в обычных проверках его полномочий. Ещё встречается в: whoami
основная группа primary group
Группа, назначенная учётной записи основной; процесс имеет свой действующий идентификатор группы. Ещё встречается в: Особые биты прав: setuid, setgid, sticky, chmod / chown, useradd, usermod
дополнительная группа supplementary group
Дополнительное членство, учитываемое при доступе; уже запущенный процесс хранит свой список групп. Ещё встречается в: usermod, umask
NSS
Механизм выбора источников для разрешения имён пользователей, групп, хостов и других записей. Ещё встречается в: DNS и разрешение имён, Цели загрузки: default, multi-user, rescue и emergency, chage
оболочка входа (login shell)
Программа из последнего поля /etc/passwd, которую система запускает при входе пользователя: обычно /bin/bash, у служб — /usr/sbin/nologin. Меняет её usermod -s. Ещё встречается в: Переменные окружения и PATH, nologin, chage

См. также

  • usermod — группы, оболочка, блокировка; ловушка -G без -a.
  • useradd — создать пользователя: ключи и умолчания Ubuntu.
  • passwd — задать, сменить, заблокировать пароль.
  • permissions — Модель прав Unix — чтение/запись/исполнение, владелец/группа/другие, спецбиты.
  • sudo — Выполнение команд от root и других пользователей; sudoers и NOPASSWD.
  • whoami — Текущая эффективная учётная запись.
Загрузка…