Re: Proposal to automatically make the owner/user of an accepted socket the current process

Greg Troxel <[email protected]> Fri, 06 Jun 2025 09:42:42 -0400
Newsgroups gmane.os.netbsd.devel.kernel,gmane.os.netbsd.devel.network
Message-ID <[email protected]>
Thor Lancelot Simon <[email protected]> writes:

> On Fri, Jun 06, 2025 at 09:28:31AM -0400, Greg Troxel wrote:
>> 
>>   get me the effective uid/gid of the process which will receive this
>>   packet after I deliver it to socket B
>
> Is there actually a guaranteed-unique answer to this question?  Even leaving
> aside file descriptor passing, what if a process forks, then drops
> privilege?  Whoever calls read() on their descriptor for the socket first
> will get the packet, no?

Maybe not.  In the cases I think matter, it's well defined.
Specifically I think it's most important for daemons that are started as
a specific uid.  If a program run as root does fork/setuid and shares
the socket, it's being odd and I'm not that concerned with how the rules
are interpreted, as it's basically a bug to write rules for that
situation that will handle things differently.