如何使用CAP_SYS_RESOURCE执行进程

时间:2010-09-18 00:43:21

标签: posix linux-capabilities

我正在使用Linux POSIX mqueue实现,我遇到了问题。 对于当前内核,最大消息大小为1MB,但我需要没有限制。

man mq_overview表示如果进程具有特权(具有CAP_SYS_RESOURCE功能的进程),则没有限制。 我认为root执行的进程已经具有特权,但我仍然收到“消息太长”的错误(我的消息有2MB)。

如何为流程添加CAP_SYS_RESOURCE功能?

3 个答案:

答案 0 :(得分:7)

我不知道是否可以将其设置为正在运行的进程(我猜不是),但您可以使用# setcap 'CAP_SYS_RESOURCE=+ep' /path/to/executable(作为超级用户)将CAP_SYS_RESOURCE功能授予可执行文件。 在此示例中,+ep向下调整为允许CAP_SYS_RESOURCE能力被允许且有效。但是,手册页capabilities(7)setcap(8)是获取更多信息的有用信息来源。

答案 1 :(得分:3)

您可以更改此文件/ proc / sys / fs / mqueue / msgsize_max上最大邮件大小的上限 我希望它有效

答案 2 :(得分:1)

在函数中尝试选项RLIMIT_MSGQUEUE:int setrlimit(int resource,const struct rlimit * rlim);

手册页:http://www.kernel.org/doc/man-pages/online/pages/man2/setrlimit.2.html

:)