Linux Labs

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

Пользователи, группы и идентичность процесса

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

Шаг 3 из 7 · на машине · 6 мин

Имя, UID и группы

id показывает, каким ядро видит процесс: номер пользователя и номера групп.

Оболочку в терминале запустили при входе от student, и каждая команда из неё получает ту же учётную запись — так работал и cat в начале урока. Каталог сводки в проверке не участвует: ядро смотрит на процесс и на сам файл.

Ядро хранит учётную запись процесса числами. UID (user identifier) — номер пользователя, GID (group identifier) — номер группы. Имена student и root нужны людям; ядро сравнивает числа.

У root UID равен 0. Номер обычного пользователя выдаётся при создании учётной записи и на разных машинах бывает разным.

Кроме пользователя, у процесса есть группы. Группа объединяет учётные записи для общего доступа: например, всем участникам группы reports можно читать сводки.

Основная группа у процесса одна, её номер и есть GID. Дополнительных групп может быть несколько. При проверке доступа ядро учитывает все.

bash
id
id root

id печатает всё сразу, например uid=1000(student) gid=1000(student) groups=1000(student),27(sudo): UID, основную группу и список групп, каждую числом и именем. id root описывает другую учётную запись.

Список групп процесс получает от процесса, который его запустил, и потом не обновляет. Заново из учётной записи его читают вход в систему и sudo -u, когда запускают новый процесс. Поэтому две похожие команды могут напечатать разное:

Команда Что описывает Когда видна новая группа
id текущий процесс — твою оболочку после нового входа в систему
id student учётную запись, как она записана сейчас сразу после добавления
Проверь себя 1 вопрос

Группе reports разрешено читать сводку. Тебя только что добавили в reports. В том же терминале ты запускаешь новую оболочку командой bash и в ней — cat summary.txt. Что будет?

  • bash, запущенный из старой оболочки, наследует её список групп. Выполни в нём id — reports в списке не будет.

  • Пароль группы — старая редкая возможность newgrp, участнику группы он не нужен. Отказ будет из-за списка групп оболочки: id покажет его без reports.

  • cd меняет только текущий каталог оболочки, группы остаются прежними. Сравни id до и после cd — вывод одинаковый.

Новая оболочка — процесс, запущенный из старой, и список групп она наследует от неё. id в ней покажет прежние группы, id student — уже с reports. Новый список даст новый вход в систему.

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

  • Ядро различает пользователей и группы по номерам — UID и GID; имена нужны людям.
  • У процесса одна основная группа и могут быть дополнительные, доступ проверяется по всем.
  • Список групп процесс наследует при запуске; заново из учётной записи его читают вход в систему и sudo -u.
Ubuntu 24.04
Загрузка…