diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2007-11-16 13:26:34 +0000 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2007-11-16 13:26:34 +0000 |
commit | b8806478701ded66fa5a6151f6aaf2140dafb024 (patch) | |
tree | 2bbd7d9965544dc6add622938f9c77918484bce8 /system/users-groups.nix | |
parent | bb08b8ff484ffa4e49b8b385924dc56f3ff660fa (diff) | |
download | nixpkgs-b8806478701ded66fa5a6151f6aaf2140dafb024.tar nixpkgs-b8806478701ded66fa5a6151f6aaf2140dafb024.tar.gz nixpkgs-b8806478701ded66fa5a6151f6aaf2140dafb024.tar.bz2 nixpkgs-b8806478701ded66fa5a6151f6aaf2140dafb024.tar.lz nixpkgs-b8806478701ded66fa5a6151f6aaf2140dafb024.tar.xz nixpkgs-b8806478701ded66fa5a6151f6aaf2140dafb024.tar.zst nixpkgs-b8806478701ded66fa5a6151f6aaf2140dafb024.zip |
* Options users.extraUsers and users.extraGroups to specify additional
users and groups that the system should create automatically. svn path=/nixos/trunk/; revision=9705
Diffstat (limited to 'system/users-groups.nix')
-rw-r--r-- | system/users-groups.nix | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/system/users-groups.nix b/system/users-groups.nix index b156ac5591e..9235fe11c18 100644 --- a/system/users-groups.nix +++ b/system/users-groups.nix @@ -1,11 +1,11 @@ -{pkgs, upstartJobs, defaultShell}: +{pkgs, config, upstartJobs, defaultShell}: let ids = import ./ids.nix; in rec { - # System user accounts. - systemUsers = + # User accounts to be created/updated by NixOS. + users = let jobUsers = pkgs.lib.concatLists (map (job: job.users) upstartJobs.jobs); @@ -40,15 +40,17 @@ rec { , group ? "nogroup" , extraGroups ? [] , home ? "/var/empty" - , shell ? "/noshell" + , shell ? (if useDefaultShell then defaultShell else "/noshell") + , createHome ? false + , useDefaultShell ? false }: - { inherit name description uid group extraGroups home shell; }; + { inherit name description uid group extraGroups home shell createHome; }; - in map addAttrs (defaultUsers ++ jobUsers ++ nixBuildUsers); + in map addAttrs (defaultUsers ++ jobUsers ++ nixBuildUsers ++ config.users.extraUsers); - # System groups. - systemGroups = + # Groups to be created/updated by NixOS. + groups = let jobGroups = pkgs.lib.concatLists (map (job: job.groups) upstartJobs.jobs); @@ -75,12 +77,12 @@ rec { { name, gid ? "" }: { inherit name gid; }; - in map addAttrs (defaultGroups ++ jobGroups); + in map addAttrs (defaultGroups ++ jobGroups ++ config.users.extraGroups); # Awful hackery necessary to pass the users/groups to the activation script. createUsersGroups = ../helpers/create-users-groups.sh; - usersList = pkgs.writeText "users" (pkgs.lib.concatStrings (map (u: "${u.name}\n${u.description}\n${toString u.uid}\n${u.group}\n${toString u.extraGroups}\n${u.home}\n${u.shell}\n") systemUsers)); - groupsList = pkgs.writeText "groups" (pkgs.lib.concatStrings (map (g: "${g.name}\n${toString g.gid}\n") systemGroups)); + usersList = pkgs.writeText "users" (pkgs.lib.concatStrings (map (u: "${u.name}\n${u.description}\n${toString u.uid}\n${u.group}\n${toString u.extraGroups}\n${u.home}\n${u.shell}\n${toString u.createHome}\n") users)); + groupsList = pkgs.writeText "groups" (pkgs.lib.concatStrings (map (g: "${g.name}\n${toString g.gid}\n") groups)); } |