2. Уровни привилегий

В следующих нескольких уроках рассматриваются более теоретические концепции. Если вы предпочитаете практические занятия, не стесняйтесь пропустить их и вернуться к этим темам позже.

Фундаментальным аспектом архитектуры Linux является разделение между пространством пользователя и ядром. Но почему бы нам не объединить их возможности в один уровень? Причина кроется в безопасности и стабильности, которые достигаются за счет их работы в разных режимах.

В чем разница между режимом ядра и режимом пользователя

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

В режиме ядра ядро имеет полный и неограниченный доступ к оборудованию; оно всем управляет. Это наивысший уровень привилегий.

В режиме пользователя приложения имеют очень ограниченный доступ к небольшой, безопасной части памяти и ресурсов ЦП.

Когда пользовательскому приложению необходимо выполнить действие, связанное с оборудованием — например, чтение с диска, отправка данных по сети или доступ к периферийному устройству — оно не может сделать это напрямую. Эти операции должны обрабатываться ядром в режиме ядра. Такая конструкция не позволяет неисправной или вредоносной программе скомпрометировать всю систему. Например, вы бы не хотели, чтобы шпионское ПО имело прямой доступ к оборудованию, так как оно могло бы прочитать все ваши данные или управлять вашей веб-камерой.

Защитные кольца и привилегированный доступ

Эти различные режимы часто описываются как уровни привилегий или защитные кольца. Представьте себе крепость с концентрическими стенами: самая внутренняя область является самой безопасной и обладает наивысшим авторитетом. Защитные кольца в компьютере работают аналогично, где самое внутреннее кольцо соответствует наивысшему уровню привилегий.

В стандартной архитектуре компьютера x86 существует два основных уровня:

  • Кольцо 0: Здесь работает ядро. Оно обладает наивысшим уровнем привилегий ядра, может выполнять любые системные инструкции и имеет полное доверие для управления оборудованием. Это ядро привилегированного доступа.
  • Кольцо 3: Это уровень, на котором работают приложения пользовательского режима. Это кольцо с наименьшими привилегиями, и оно не имеет прямого доступа к оборудованию.

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

Системные вызовы и привилегии ядра

Связующим звеном между режимом пользователя и режимом ядра является системный вызов. Когда пользовательскому приложению необходимо выполнить привилегированную задачу, оно делает системный вызов с просьбой к ядру выполнить это действие от его имени.

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

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

Вход

Упражнения

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

  1. Управление учетными записями пользователей Linux с помощью useradd, usermod и userdel — Практикуйтесь в создании, изменении и удалении учетных записей пользователей, что напрямую связано с управлением сущностями, работающими в пространстве пользователя и требующими взаимодействия с ядром для привилегированных действий.
  2. Управление разрешениями файлов и каталогов в Linux — Узнайте, как контролировать доступ к файлам и каталогам, что является основной концепцией безопасности, основанной на том, что ядро применяет разрешения на основе привилегий пользователя.
  3. Управление процессами Linux и мониторинг — Изучите, как взаимодействовать с процессами и отслеживать их, которые представляют собой приложения пользовательского пространства, выполняющие системные вызовы к ядру для управления ресурсами и выполнения.

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

Тест

Какое кольцо имеет наивысшие привилегии?