@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