On 16. 10. 24 19:45, Arthur de Jong wrote:
On Wed, 2024-10-16 at 15:40 +0200, David Koňařík wrote:
As far as I can tell, this is because the packaged systemd service
sets "ProtectSystem=strict", which remounts everything read-only,
including the PID file directory. I fixed this by setting
"ProtectSystem=full"; "ReadWritePaths=/run" also works.

Thanks for reporting this. Interestingly, this doesn't happen on my own
Debian unstable system.

That's strange. I checked an Incus container on another machine (with a different host distro), and the same problem happened. But in a QEMU VM with a Live CD of trixie, everything launched fine.

I tried reinstalling all packages in the container to hopefully rule out a bad rootfs, but nothing changed.

I even tried launching an Incus container from a host trixie system, so that it would have the "proper" kernel, and it's still broken there.

I didn't see any messages from systemd itself regarding the isolation, so I don't know why it would behave differently. To me, "ProtectSystem=strict" making even /run read-only seems like the way it should work, so I don't know why it's sometimes not the case.

Can you check that this also works:

   ProtectSystem=strict
   StateDirectory=/run/nslcd

When I set this, systemd complains that StateDirectory is absolute; it wants a relative path under /var/lib. Setting "RuntimeDirectory=nslcd" instead still doesn't work, but now nslcd complains instead that "bind() to /var/run/nslcd/socket failed: Permission denied".

By the way, why does nslcd.service run the daemon by calling a SysV
init shell script?

Mostly because the init script also runs k5start if nslcd.conf contains
Kerberos authentication options (further configurable through
/etc/default/nslcd).
Thanks for clearing that up. I'd personally have users enable k5start themselves, but I suppose that's a difference in opinion/style.

Thanks,
David Koňařík

Reply via email to