如何为Linux用户设置CAP_SYS_NICE功能?
作者:互联网
我的程序使用Linux系统调用setpriority()来更改它创建的线程的优先级.它需要设置负优先级(-10),但是,如文档中所述,当以普通用户身份运行时,这会失败.
用户需要CAP_SYS_NICE功能才能根据需要设置优先级,但我不知道如何为用户提供此类功能.
所以我的问题是:如何为Linux用户设置CAP_SYS_NICE功能?
解决方法:
Jan Hudec是对的,一个进程不能只给自己一个功能,而setuid包装器是获得该功能的明显方式.另外,请记住,当您删除root时,您需要prctl(PR_SET_KEEPCAPS,…). (有关详细信息,请参见prctl手册页.)否则,当您转换到非root真实用户ID时,您将删除该功能.
如果您真的只想启动具有不同允许级别的用户会话,您可能会看到pam_limits和limits.conf手册页,因为pam_limits模块允许您更改硬件限制.它可能是一条线:
yourspecialusername hard nice -10
标签:linux,real-time 来源: https://codeday.me/bug/20191008/1870083.html