$darkmode
Elektra 0.9.12
Plugin: passwd

This plugin parses passwd files, e.g. /etc/passwd.

See installation. The package is called libelektra5-experimental.

The non-POSIX function fgetpwent (GNU_SOURCE) will be used to read the file supplied by the resolver. As a fallback we implemented our own version based on musls fgetpwent.

For writing putpwent (GNU_SOURCE) will be used. If it is not available the plugin will write straight to the config file.

For the plugin to be build at least POSIX_C_SOURCE >= 200809L compatibility is required.

If the config key index is set to name passwd entries will be sorted by name, if not set or set to uid passwd entries will be sorted by uid

To mount the passwd file you can run

sudo kdb mount /etc/passwd system:/tests/passwd passwd index=name

To see which entries for the root user exist you can run

kdb ls system:/tests/passwd/root
#> system:/tests/passwd/root
#> system:/tests/passwd/root/gecos
#> system:/tests/passwd/root/gid
#> system:/tests/passwd/root/home
#> system:/tests/passwd/root/passwd
#> system:/tests/passwd/root/shell
#> system:/tests/passwd/root/uid

If you want to receive one specific value you can run for example

kdb get system:/tests/passwd/root/gecos

You can also export it as whole in any format you like, for example JSON

kdb export system:/tests/passwd/root json
# {
# "gecos": "root",
# "gid": "0",
# "home": "/root",
# "passwd": "x",
# "shell": "/bin/bash",
# "uid": "0"
# }

To unmount it, you can run

sudo kdb umount system:/tests/passwd