Re: What to use in place of abstract unix sockets?

From: Daniel O'Connor via freebsd-hackers <freebsd-hackers_at_freebsd.org>
Date: Thu, 09 Dec 2021 00:08:19 UTC

> On 8 Dec 2021, at 17:13, Gleb Popov <arrowd@freebsd.org> wrote:
> I'm porting a software that does the following things on Linux:
> 
> 1. Binds an abstract UDS (the socket name starts with '\0')
> 2. Launches a "client" process.
> 3. "Client" uses chroot() to constrain itself in a sort of jail.
> 4. "Client" connects to the abstract UDS.
> 
> From what I can tell, this works because abstract UDS's do not use the
> filesystem namespace, which is why "client" can connect out of the
> chroot'ed environment.
> 
> What can I do to make this software work for FreeBSD? Simply using regular
> UDS instead of abstract ones doesn't work for obvious reasons - the
> "client" can't find the socket file.

If the parent knows where the child will chroot it could create a unix domain socket under that directory somewhere.

--
Daniel O'Connor
"The nice thing about standards is that there
are so many of them to choose from."
 -- Andrew Tanenbaum