Eu tenho jogado com cset para definir a afinidade da CPU para processos em execução. Estou recriando a função interna "blindagem" manualmente com set e proc, para adicionar alguns subconjuntos para threads específicos do meu aplicativo. Eu tenho um script bash que está chamando cset para criar os conjuntos e mover os segmentos corretos para os conjuntos corretos. Funciona quando executado com o sudo.
Agora eu gostaria de tornar esse script executável por outro usuário, que não possui poderes de sudo. Confio neste usuário o suficiente para ser responsável pelo cset, mas não quero abrir os amplos poderes do root.
Eu pensei que CAP_SYS_NICE - que é necessário para sched_setaffinity, que eu presumo que o cset deve usar - no script seria suficiente, mas não funcionou. Tentei estender CAP_SYS_NICE para o programa cset (que é um invólucro python fino para a biblioteca cset python). Sem dados. A saída de cap_to_text nos meus scripts CAP_SYS_NICE'd é "= cap_ipc_lock, cap_sys_nice, cap_sys_resource + eip" (possui ipc_lock e sys_resource por outros motivos; acho que apenas sys_nice é relevante).
Alguma ideia?