Is it possible to send a signal to process that be

2019-05-11 09:18发布

问题:

I need to send a signal to different process for some real-time communication, however the process belongs to different user.

For example

PID   user   group
1234  foo    foobar   
4321  bar    foobar

I want process 1234 and 4321 to be able to send signals to each other?

If I was using sockets or pipes I could set their mask to rw-rw-r-- and communication would work. However I need to do the communication using signals (ordinary or real time, not important).

Is there a way to do it?

回答1:

Quote from kill(2):

For a process to have permission to send a signal it must either be privileged
(under Linux: have the CAP_KILL capability), or the real or effective user ID
of the sending process must equal the real or saved set-user-ID of the target
process.  In the case of SIGCONT it suffices when the sending and receiving
processes belong to the same session.

You can find capabilities(7) and setcap(8) useful.