linux-labs

Вики / Пользователи и права

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

Концепция Ubuntu 24.04 ПраваБезопасностьБазовое

Учётные записи, группы, членство; useradd/usermod, /etc/passwd и /etc/group.

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

id alice                          # uid, gid, группы
whoami                            # текущий пользователь
getent passwd alice               # запись из passwd (учитывает LDAP/SSSD)
groups alice                      # группы пользователя
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. Шаблон нового home — /etc/skel.

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).

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

Членство применяется при новом логине. Перелогинься (или 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).

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 -l bob ; sudo chage -M 90 bob   # срок пароля
getent group sudo                 # кто в группе

См. также