Linux Labs

Пользователи, права, процессы / Ступень 7 из 13

Управление членством в группах

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 2 из 6 · на машине · 5 мин

Основная и дополнительные группы

Группы пользователя хранятся в двух местах, и меняют их разные ключи usermod.

Основная группа одна — её GID записан в строке пользователя в /etc/passwd. Её получают новые файлы пользователя. Дополнительные группы перечислены в файле /etc/group: у каждой группы последнее поле — список её дополнительных участников.

bash
getent group sudo

sudo:x:27:student — student состоит в sudo дополнительно. Своей основной группы student в этом поле нет: она записана в его строке /etc/passwd.

Ключ usermod Что меняет
-g группа основную группу
-G группа1,группа2 весь список дополнительных групп — заменяет его целиком

Поэтому -G lab-writers оставила у labmember из дополнительных одну lab-writers, а основная группа labmember не изменилась.

Проверь себя 1 вопрос

У ann в /etc/passwd GID 1005. Состоит ли она в группе devs?

$ getent group devs
devs:x:1005:
  • Членство уже записано в учётной записи: GID 1005 в строке ann делает devs её основной группой. Вход для этого не нужен.

  • Последнее поле — дополнительные участники. Основную группу задаёт GID в /etc/passwd, а у ann он 1005 — номер devs.

  • Пустое последнее поле значит только, что дополнительных участников нет. Основных ищут по GID в /etc/passwd: у ann он 1005.

Основная группа записана в строке пользователя в /etc/passwd, а /etc/group перечисляет дополнительных участников. Поэтому ann в devs, хотя в строке группы её нет; id ann покажет gid=1005(devs).

Главное в шаге

  • Основная группа — GID в строке /etc/passwd, дополнительные — в последнем поле строк /etc/group.
  • usermod -G задаёт весь список дополнительных групп заново, -g меняет основную.
Ubuntu 24.04
Загрузка…