Capabilities: различия между версиями
(добавление шаблона) |
Нет описания правки |
||
Строка 3: | Строка 3: | ||
{{викифицировать}} | {{викифицировать}} | ||
== capability == | == capability == | ||
<pre> | |||
> Не могли ли Вы рассказать в 2-х словах, что за чудесные свойства модуля | |||
> capability? | |||
Если в 2-х словах - man capabilities ;) | Если в 2-х словах - man capabilities ;) | ||
Вообще capabilities - это средства для управления привилегиями, которые в | |||
традиционных Unix-подобных системах были доступны только процессам, запущенным | |||
с правами root (uid==0). Этот механизм позволяет дать процессу права на выполнение | |||
каких-либо действий, недоступных обычному пользователю (например, изменение | |||
системного времени, прямой доступ к аппаратуре, использование зарезервированных | |||
портов TCP/UDP (< 1024), блокировка страниц в физической памяти), но в то же время | |||
не предоставлять этому процессу полный набор прав root. Например, процесс ntpd | |||
выполняется с правами псевдопользователя (и к тому же в chroot), но благодаря | |||
наличию привилегии CAP_SYS_TIME имеет возможность модифицировать системное время. | |||
В большинстве вариантов ядра поддержка capabilities встроена в ядро и не требует | |||
загрузки дополнительных модулей. Однако в ядрах wks26 эта поддержка вынесена в | |||
В большинстве вариантов ядра поддержка capabilities встроена в ядро и не требует загрузки дополнительных модулей. Однако в ядрах wks26 эта поддержка вынесена в отдельный модуль; это связано с тем, что для ядер wks26 также собирается модуль realtime, который предоставляет дополнительные средства для раздачи прав на выполнение процессов с realtime-приоритетом. Модуль realtime не может загрузиться при активном модуле capability, поэтому пришлось вынести соответствующую поддержку из ядра в отдельный модуль. (Хотя на самом деле можно было бы оставить модуль capability встроенным в ядро, а для использования модуля realtime добавлять в параметры загрузки ядра capability.disable=1.) | отдельный модуль; это связано с тем, что для ядер wks26 также собирается модуль | ||
realtime, который предоставляет дополнительные средства для раздачи прав на | |||
выполнение процессов с realtime-приоритетом. Модуль realtime не может загрузиться | |||
при активном модуле capability, поэтому пришлось вынести соответствующую поддержку | |||
из ядра в отдельный модуль. (Хотя на самом деле можно было бы оставить модуль | |||
capability встроенным в ядро, а для использования модуля realtime добавлять в | |||
параметры загрузки ядра capability.disable=1.) | |||
</pre> | |||
Sergey Vlasov, vsu at altlinux.ru |
Версия от 08:06, 21 августа 2008
capability
> Не могли ли Вы рассказать в 2-х словах, что за чудесные свойства модуля > capability? Если в 2-х словах - man capabilities ;) Вообще capabilities - это средства для управления привилегиями, которые в традиционных Unix-подобных системах были доступны только процессам, запущенным с правами root (uid==0). Этот механизм позволяет дать процессу права на выполнение каких-либо действий, недоступных обычному пользователю (например, изменение системного времени, прямой доступ к аппаратуре, использование зарезервированных портов TCP/UDP (< 1024), блокировка страниц в физической памяти), но в то же время не предоставлять этому процессу полный набор прав root. Например, процесс ntpd выполняется с правами псевдопользователя (и к тому же в chroot), но благодаря наличию привилегии CAP_SYS_TIME имеет возможность модифицировать системное время. В большинстве вариантов ядра поддержка capabilities встроена в ядро и не требует загрузки дополнительных модулей. Однако в ядрах wks26 эта поддержка вынесена в отдельный модуль; это связано с тем, что для ядер wks26 также собирается модуль realtime, который предоставляет дополнительные средства для раздачи прав на выполнение процессов с realtime-приоритетом. Модуль realtime не может загрузиться при активном модуле capability, поэтому пришлось вынести соответствующую поддержку из ядра в отдельный модуль. (Хотя на самом деле можно было бы оставить модуль capability встроенным в ядро, а для использования модуля realtime добавлять в параметры загрузки ядра capability.disable=1.)
Sergey Vlasov, vsu at altlinux.ru