Как выполнить процесс с CAP_SYS_RESOURCE - PullRequest
9 голосов
/ 18 сентября 2010

Я использую реализацию Linux POSIX mqueue, и у меня возникла проблема. Для текущего ядра максимальный размер сообщения составляет 1 МБ, но у меня не должно быть ограничений.

man mq_overview говорит о том, что если процесс является привилегированным (процесс с возможностью CAP_SYS_RESOURCE), он не имеет ограничений. Я думал, что процесс, выполняемый пользователем root, уже был привилегированным, но я все еще получаю ошибку «сообщение слишком длинное» (мое сообщение имеет 2 МБ).

Как я могу добавить CAP_SYS_RESOURCE способность к процессу?

Ответы [ 3 ]

7 голосов
/ 13 марта 2013

Я не знаю, возможно ли установить его на запущенный процесс (я думаю, нет), но вы можете предоставить возможность CAP_SYS_RESOURCE для исполняемого файла, используя # setcap 'CAP_SYS_RESOURCE=+ep' /path/to/executable (как суперпользователь). В этом примере +ep превращается в повышение способности CAP_SYS_RESOURCE, чтобы быть разрешенным и эффективным. Однако справочные страницы capabilities(7) и setcap(8) являются полезными источниками для получения дополнительной информации.

3 голосов
/ 05 августа 2011

вы можете изменить максимальный размер сообщения в этом файле / proc / sys / fs / mqueue / msgsize_max Я надеюсь, что это работает

1 голос
/ 18 сентября 2010

попробуйте параметр RLIMIT_MSGQUEUE в функции: int setrlimit (ресурс int, const struct rlimit * rlim);

Справочная страница: http://www.kernel.org/doc/man-pages/online/pages/man2/setrlimit.2.html

:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...