Nix / NixOS-flavored system administration guide for transitioning from traditional (imperative) Linux system administration?

Does such a resource exist? Something that would explain how NixOS’ system administration differs from the traditional Linux one? For example, user / group administration: how to add groups, users, change primary / secondary groups, etc.

I assume it’s all there in the manuals, but all the bits relevant to this topic are scattered and it is hard (and/or tedious) to find them. To continue with the user administration example, the NixOS manual section is clear, but it is hard to see on first (or on a quick) glance that there are two modes, and their nuances of operation and configuration also blend in to a wall of text (e.g., users.mutableUsers = false; disables imperative mode).

Some of my criticism could be improved with a PR (hoping to find time to do this), but stylistic changes wouldn’t address the main problem. (Maybe an “overlay” document that pulls in the parts and compares the NixOS-specific ones to the traditional steps?)

Cases in point:


I would say the most useful resource for me is the configuration.nix manual page, it is essentially the same information as the options appendix in the manual, but quickly searchable from the command line.

What I want to do or modify, that is typically my starting point.

1 Like

One observation : Red Hat uses what is called “user private groups”, where the default group for a user is a special custom group, named after the user. Many Linux distributions, including NixOS, instead uses a common group named “user”. If you are transitioning from a Red Hat-flavoured distribution, this would be a difference.

Some of these differences are controlled in /etc/login.defs , especially UMASK and HOME_MODE. I transitioned my openSUSE systems at home, which uses the traditional setup, to the Red Hat-inspired “user private groups”, by adjusting that configuration. But in NixOS, this is harder to do since from what I remember, login.defs is not exposed to easily be reconfigured.