如何使用CAP_SYS_RESOURCE执行进程

11
我正在使用 Linux POSIX mqueue 实现,但是我遇到了一个问题。 对于当前的内核,最大消息大小为 1MB,但我需要无限制的大小。
根据 man mq_overview 所说,如果进程是特权进程(具有 CAP_SYS_RESOURCE 能力),则它没有限制。 我认为以 root 用户身份执行的进程已经拥有特权,但是我仍然收到“消息太长”的错误(我的消息大小为 2MB)。
如何将 CAP_SYS_RESOURCE 能力添加到该进程中?
3个回答

7

我不确定是否可以在运行的进程中设置它(我猜不行),但您可以使用# setcap 'CAP_SYS_RESOURCE=+ep' /path/to/executable命令(作为超级用户)授予可执行文件CAP_SYS_RESOURCE功能。

在这个例子中,+ep将把CAP_SYS_RESOURCE功能转化为被允许和有效的状态。然而,capabilities(7)setcap(8)的手册是进一步了解的有用来源。


3

您可以更改此文件/proc/sys/fs/mqueue/msgsize_max上的最大消息大小限制。希望这能起作用。


1

我使用了RLIM_INFINITY,但仍然收到“消息太长”的错误信息 =/ - Leonardo Alt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接