@seachaint systemd maintains a standard for a user database format, because /etc/passwd is incredibly limited and lacking many fields you might want to store on a modern system.
It contains optional fields like a userâs e-mail address, âreal nameâ, or details like identifiers of security tokens they might wish to use to unlock their account.
In this case theyâre adding a definition of a dateOfBirth fields to a JSON map, and nothing more. In particular you will not find any particular age confirmation method here; itâs entirely up to self reporting by the system administrator(s)
@jripley @seachaint it could be in a separate package called userdbd and youâd be complaining that Lenartâs 30 interconnected packages were taking over the Linux system đ¤ˇ
Itâs not even actually a user database, itâs a replacement/alternative for the NSS interface that lets you query various properties of a user that multiple backends can plug into including several external backends (Iâve written my own! Itâs trivial!) and several backends that e.g. provide synthetic users inside the systemd package itself.
@jripley the thing is that these things canât be disentangled. One of the userdb backends is provided by pid1 itself, for example (to support the DynamicUser feature)
Itâs very difficult to disentangle these things because so many of the things systemd touches are cross-cutting concerns that affect the whole system, and the reason it keeps touching them is that having them historically spread across so many packages has ossified so they are stuck in the 70s
@navi @jripley which is exactly an example of how you can just take the userdb interface and reimplement it.
I donât know what point youâre making. They could have implemented it in a separate project? Sure, at the cost of circular dependencies (systemd -> userdbd or at least the protocol definition -> libsystemd), or you split it into more projects and now youâre continually having to do commits across 7 separate repositories to implement simple features, bumping dependencies all the way.
You donât like the implementation choices, you can reimplement it. Heck Iâm pretty damn sure that systemd would work perfectly with gardnerdb (as long as you let pid1 itself provide the io.systemd.DynamicUsers service as it needs to do)