capget, capset - функции, устанавливающие/получающие возможности процесса
НАЗВАНИЕcapget, capset - функции, устанавливающие/получающие
возможности процесса
СИНТАКСИС
#undef _POSIX_SOURCE
#include
int capget(cap_user_header_t header, cap_user_data_t
data);
int capset(cap_user_header_t header, const cap_user_data_t
data);
ОПИСАНИЕ
В версии Linux 2.2 возможности пользователя root
разделены. Каждый процесс имеет несколько возможностей,
которые предопределяют остальные. Процесс наследует
возможности, которые передаются через execve(2) и которые
он может передать своему дочернему процессу.
Эти две функции являются непосредственным интерфейсом ядра
для установления и получения возможностей процесса. Эти
системные вызовы работают не только с Linux: ядро API
может использовать и изменять эти функции (в частности, в
формате типа cap_user_*_t) в каждой последующей его
версии.
Интерфейсы cap_set_proc(3) и cap_get_proc(3) являются
совместимыми с другими системами; используйте их по
возможности в приложениях. Если Вы предпочитаете работать
с расширениями Linux в приложениях, то для этого
существуют другие интерфейсы: capsetp(3) и capgetp(3).
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При удачном исполнении возвращаемое значение равно нулю.
При ошибке оно равно -1, а errno принимает соответствующее
значение.
КОДЫ ОШИБОК
EINVAL Один из аргументов был неправильным.
EPERM Была попытка добавить возможность в разрешенный
набор, или добавить возможность, не являющуюся
разрешенной, в действующие или наследуемые наборы.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ
Переносной интерфейс для запроса возможностей и
установления функций предоставлен библиотекой libcap,
которую можно отыскать по адресу:
ftp://linux.kernel.org/pub/linux/libs/security/linux-privs