7. Разрешения процессов

Давайте немного углубимся в разрешения процессов. Помните, я говорил вам, что когда вы запускаете команду passwd с включенным битом разрешения SUID, вы будете запускать программу от имени root? Это правда. Однако означает ли это, что, поскольку вы временно являетесь root, вы можете изменять пароли других пользователей? Нет, к счастью, нет!

Это связано со множеством UID, которые реализует Linux. С каждым процессом связаны три UID:

Когда вы запускаете процесс, он выполняется с теми же разрешениями, что и пользователь или группа, которые его запустили. Это известно как эффективный идентификатор пользователя (effective user ID). Этот UID используется для предоставления прав доступа процессу. Таким образом, естественно, если Боб запустил команду touch, процесс будет выполняться от его имени, и любые созданные им файлы будут принадлежать ему.

Существует еще один UID, называемый реальным идентификатором пользователя (real user ID). Это идентификатор пользователя, который запустил процесс. Они используются для отслеживания того, кто является пользователем, запустившим процесс.

Последний UID — это сохраненный идентификатор пользователя (saved user ID). Он позволяет процессу переключаться между эффективным UID и реальным UID и наоборот. Это полезно, потому что мы не хотим, чтобы наш процесс постоянно работал с повышенными привилегиями; это просто хорошая практика — использовать специальные привилегии в определенное время.

Теперь давайте объединим все это, еще раз взглянув на команду passwd.

При запуске команды passwd ваш эффективный UID — это ваш идентификатор пользователя; допустим, сейчас это 500. О, но подождите, помните, что команда passwd имеет включенное разрешение SUID. Поэтому, когда вы ее запускаете, ваш эффективный UID теперь равен 0 (0 — это UID root). Теперь эта программа может получать доступ к файлам как root.

Допустим, вы немного почувствовали власть и хотите изменить пароль Салли. Салли имеет UID 600. Что ж, вам не повезет. К счастью, процесс также имеет ваш реальный UID, в данном случае 500. Он знает, что ваш UID равен 500, и поэтому вы не можете изменить пароль UID 600. (Это, конечно, всегда обходится, если вы являетесь суперпользователем на машине и можете контролировать и изменять все).

Поскольку вы запустили passwd, процесс начнется с использованием вашего реального UID, и он сохранит UID владельца файла (эффективный UID), чтобы вы могли переключаться между ними. Нет необходимости изменять все файлы с доступом root, если это не требуется.

В большинстве случаев реальный UID и эффективный UID совпадают, но в таких случаях, как команда passwd, они будут меняться.

Войдите, чтобы сохранить ваш прогресс обучения

Вход

Упражнения

Практика ведет к совершенству! Понимание идентификаторов пользователей и разрешений процессов имеет решающее значение для безопасности и администрирования Linux. Вот несколько практических заданий для закрепления вашего понимания управления пользователями и группами, которое составляет основу функционирования UID:

  1. Группы пользователей Linux и разрешения файлов - Изучите основные концепции управления пользователями и группами Linux, включая создание и управление пользователями, изучение членства в группах, понимание разрешений файлов и манипулирование владением файлами. Эта лаборатория предоставляет практический опыт обеспечения безопасности многопользовательской среды Linux.
  2. Добавление нового пользователя и группы - В этом задании вы будете имитировать добавление новых членов команды в серверную среду, создавая новые учетные записи пользователей, настраивая пользовательские группы и управляя членством в группах. Это проверит ваши навыки в администрировании пользователей и групп Linux, что важно для системных администраторов и специалистов DevOps.

Эти лаборатории помогут вам применить концепции управления пользователями и группами в реальных сценариях, заложив прочную основу для понимания того, как UID контролируют доступ и разрешения в Linux.

Тест

Какой UID определяет, какой доступ предоставить?