Linux использует идентификаторы пользователей и групп, чтобы помечать процессы, назначать владельцев объектам файловой системы и принимать решения об управлении доступом. Понятные человеку имена помогают администраторам, а ядро в основном работает с числовыми идентификаторами и учётными данными процессов.
Управление пользователями · Урок 1
Пользователи и группы
Узнайте, как Linux идентифицирует пользователей и группы и как учётные данные процесса влияют на решения о доступе.
Идентификация пользователей по UID
У каждой учётной записи есть числовой идентификатор пользователя, или UID. Имена пользователей сопоставляются с UID через системные базы учётных записей. Файлы хранят числового владельца, который инструменты обычно показывают как соответствующее имя.
Выполните id, чтобы проверить сведения об идентичности текущего процесса:
$ id
uid=1000(alice) gid=1000(alice) groups=1000(alice),27(sudo)
Значения различаются в разных системах. Учётные записи людей часто имеют домашние каталоги вроде /home/alice, но могут использовать другой путь или вовсе не иметь обычного домашнего каталога. Служебные учётные записи нередко существуют для запуска программ с ограниченной идентичностью, а не для интерактивного входа.
Какой идентификатор ядро в основном использует для представления пользователя?
Организация доступа с помощью групп
У группы есть числовой идентификатор, или GID. Учётная запись обычно имеет одну первичную группу и может входить в дополнительные. Членство позволяет администраторам предоставлять доступ набору пользователей, не назначая права каждой учётной записи по отдельности.
Проверьте членство командами:
$ id alice
$ groups alice
Они сообщают настроенные или разрешённые сведения об идентичности. В этом могут участвовать службы каталогов и кэши, поэтому непосредственное чтение /etc/group не всегда показывает полную картину эффективного членства.
Каким образом одна учётная запись Linux обычно участвует в группах?
Учётные данные процесса
У процесса есть такие учётные данные, как реальные и эффективные UID и GID, а также дополнительные группы. Эффективные данные играют центральную роль во многих проверках прав. Запущенный пользователем процесс обычно наследует их от родителя, но контролируемые механизмы могут изменять значения.
Это точнее утверждения, что процесс всегда работает только «от имени запустившего его пользователя». Исполняемые файлы set-user-ID, менеджеры служб, контейнеры, пространства имён и системные вызовы изменения привилегий могут влиять на видимые или эффективные идентификаторы в конкретном контексте.
Какие данные обычно учитывает ядро при сопоставлении процесса с правами файла?
Идентичность root
Учётная запись с традиционным именем root имеет UID 0. Многие механизмы прав Linux обрабатывают UID 0 особо, предоставляя широкие административные возможности. Современный Linux также разделяет привилегии через capabilities, пространства имён, обязательное управление доступом и изоляцию служб, поэтому «неограниченная власть в любом контексте» — чрезмерное упрощение.
Повседневную работу следует выполнять из непривилегированной учётной записи. Административные полномочия усиливают последствия ошибок в путях, ненадёжных команд и скомпрометированного ПО.
Какой числовой UID традиционно обозначает учётную запись root?
Использование sudo согласно политике
sudo запрашивает настроенную политику, разрешено ли вызывающему пользователю выполнить команду от имени целевого. По умолчанию целью часто является root, но политика или -u USER может выбрать другую учётную запись. Запросы аутентификации и журналирование также зависят от конфигурации.
Выведите команды, которые разрешено выполнять текущей учётной записи:
$ sudo -l
Используйте разрешённую административную команду только тогда, когда она нужна для задачи и вы понимаете её последствия. Не применяйте sudo лишь для подавления ошибки прав и не показывайте базы хешей паролей вроде /etc/shadow как случайное упражнение.
Что делает sudo перед запуском запрошенной команды?
Чтобы попрактиковаться в администрировании учётных записей и групп в контролируемой среде, выполните лабораторные работы:
- Управление учётными записями Linux с useradd, usermod и userdel — отработайте полный жизненный цикл администрирования пользователей: создание, защита, изменение и удаление учётных записей.
- Управление группами Linux с groupadd, usermod и groupdel — попрактикуйтесь создавать группы, менять членство пользователей и удалять группы.
- Настройка учётных записей и привилегий sudo в Linux — освойте управление пользователями и привилегиями
sudo, включая предоставление административных разрешений.
Урок завершён
Вы завершили Пользователи и группы
Теперь вы можете описать представление идентичностей и делегирование административных команд в Linux.
Идентифицируйте учётные записи по UID, а группы — по GID.
Отличайте первичную группу от дополнительных.
Связывайте учётные данные процесса с проверками доступа.
Распознавайте UID 0 как традиционную идентичность root.
Считайте
sudoинструментом делегирования под управлением политики.
Сохраните прогресс
Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.
Создать бесплатный аккаунт