Files
nix-config/modules/nixos/base/user-group.nix
2024-01-23 12:13:58 +08:00

50 lines
1.3 KiB
Nix

{
username,
config,
...
}: {
# Don't allow mutation of users outside the config.
users.mutableUsers = false;
users.groups = {
"${username}" = {};
docker = {};
wireshark = {};
# for android platform tools's udev rules
adbusers = {};
dialout = {};
# for openocd (embedded system development)
plugdev = {};
# misc
uinput = {};
};
users.users."${username}" = {
# generated by `mkpasswd -m scrypt`
# we have to use initialHashedPassword here when using tmpfs for /
initialHashedPassword = "$7$CU..../....Sdl/JRH..9eIvZ6mE/52r.$xeR6lyvTcVVKt28Owcoc/vPOOECcYSiq1xjw/QCz2t0";
home = "/home/${username}";
isNormalUser = true;
extraGroups = [
username
"users"
"networkmanager"
"wheel"
"docker"
"wireshark"
"adbusers"
"libvirtd"
];
};
users.users.root = {
initialHashedPassword = "$7$CU..../....X6uvZYnFD.i1CqqFFNl4./$4vgqzIPyw5XBr0aCDFbY/UIRRJr7h5SMGoQ/ZvX3FP2";
openssh.authorizedKeys.keys = config.users.users."${username}".openssh.authorizedKeys.keys;
};
# The wheel group is a special user group,
# which can access to the `su` or `sudo` command to run commands as super user.
#
# Don't ask for password for wheel group
security.sudo.wheelNeedsPassword = false;
}