ядро: поддержка Пространств имен

Добавьте следующее к своему Xorg.conf:

Section "InputClass"
   Identifier     "Wheel Emulation"
   MatchIsPointer "on"
   MatchProduct   "TrackPoint"
   Option         "EmulateWheelButton" "2"
   Option "EmulateWheel" "on"
EndSection

и затем перезагрузка.

15
27.12.2013, 20:46
3 ответа

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

Виртуальное системное выполнение в большей системе называют контейнером. Идея контейнера состоит в том, что процессы, работающие в контейнере, полагают, что они - единственные процессы в системе. В частности, у пользователя root в контейнере нет полномочий пользователя root вне контейнера (обратите внимание, что это только верно в достаточно недавних версиях ядра).

Пространства имен виртуализируют одну функцию за один раз. Некоторые примеры типов пространств имен:

  • Пользовательские пространства имен — это позволяет процессам вести себя, как будто они работали как различные пользователи внутри и снаружи пространства имен. В частности, процессы, работающие как UID 0 внутренней части пространство имен, имеют полномочия суперпользователя только относительно процессов, работающих в том же пространстве имен.
    Начиная с ядра Linux 3.8, непривилегированные пользователи могут создать пользовательские пространства имен. Это позволяет обычному пользователю использовать функции, которые резервируются для укоренения (такие как изменяющиеся таблицы маршрутизации или возможности установки).
  • Пространства имен PID — процессы в пространстве имен PID не могут уничтожить или проследить процессы вне того пространства имен.
  • Смонтируйте пространства имен — это позволяет процессам иметь свое собственное представление файловой системы. Это представление может быть частичным представлением, позволив некоторым частям файловой системы быть скрытым и части, которые будут реконструированы так, чтобы деревья каталогов появились в различных местах. Смонтируйте, что пространства имен обобщают традиционную функцию Unix chroot, который позволяет процессам быть ограниченными конкретным поддеревом.
  • Сетевые пространства имен — позволяют разделение сетевых ресурсов (сетевые устройства) и таким образом улучшают изоляцию процессов.

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

Существует все еще немного приложений, которые используют пространства имен. Вот некоторые:

  • LXC известен. Это полагается на cgroups для обеспечения контейнеров.
  • virt-песочница является более свежим проектом игры в песочнице.
  • Последние версии Хрома также используют пространства имен для игры в песочнице где это возможно.
  • uWSGI платформа для кластерных приложений использует пространства имен для улучшенной игры в песочнице.

Посмотрите ряд статьи LWN Michael Kerrisk для получения дополнительной информации.

21
27.01.2020, 19:49

Пространство имен ядра Linux является понятием, используемым для изоляции группы процессов от других относительно доступа к системному ресурсу. Например, два различных пространства имен PID могут содержать процессы с идентичным PIDs, но совершенно другим образом процесса. Они часто используются в виртуализации уровня ОС, в которой единственное ядро одновременно выполняет различные операционные системы - все должны быть базирующимся Linux (потому что они совместно используют ядро, очевидно), но могут быть различные дистрибутивы и версии. Посмотрите, например, LXC.

Можно заметить отключение его, например, в находящихся в systemd системах, так как systemd может использовать пространства имен для своей контейнерной функции. Следовательно много зависит, на каком распределении Вы используете и что Вы намереваетесь сделать с системой.

Как почти с каждой функцией ядра, Вам определенно нужны своего рода программы пространства пользователя - даже если Вы говорили с ядром через специальные файлы (я не уверен, что Вы можете), это - обычно намного лучшая идея полагаться на специализированные инструменты, так как они предлагают передний дружественный API.

6
27.01.2020, 19:49

Дать пример использования пространства имен, в SELinux (MLS или Строгий) включило системы. Пространство имен обычно используется для создания человека /tmp и или /home каталоги для каждого пользователя. Те каталоги видимы только к: пользователь, пользователи с той же маркировкой, ядром и пользователями с привилегированным доступом. Редактор пространства имен /tmp каталог маркирован SELinux-MLS для соответствия маркировке SELinux-MLS пользователя. В этом сценарии /tmp каталог, который видит пользователь, может действительно быть смонтирован где-нибудь кроме /tmp (/var/user-tmp). Пользователь однако только видит /tmp с файлами, которые создаются из-за действия пользователя. пользователь никогда не будет видеть файлов в /tmp это - продукт других пользователей.

1
27.01.2020, 19:49

Теги

Похожие вопросы