diff options
author | William A. Kennington III <william@wkennington.com> | 2015-03-09 18:04:40 -0700 |
---|---|---|
committer | William A. Kennington III <william@wkennington.com> | 2015-03-09 18:10:31 -0700 |
commit | 4940e643ccdbaa224cd06a588bd5608e03c29dcf (patch) | |
tree | 57c8e82b0c6a5ca13bdd0fc85da5d32aaf4da386 /nixos/modules | |
parent | 66bfdf6eb00c8def644fcd534e979db470a33b55 (diff) | |
download | nixpkgs-4940e643ccdbaa224cd06a588bd5608e03c29dcf.tar nixpkgs-4940e643ccdbaa224cd06a588bd5608e03c29dcf.tar.gz nixpkgs-4940e643ccdbaa224cd06a588bd5608e03c29dcf.tar.bz2 nixpkgs-4940e643ccdbaa224cd06a588bd5608e03c29dcf.tar.lz nixpkgs-4940e643ccdbaa224cd06a588bd5608e03c29dcf.tar.xz nixpkgs-4940e643ccdbaa224cd06a588bd5608e03c29dcf.tar.zst nixpkgs-4940e643ccdbaa224cd06a588bd5608e03c29dcf.zip |
nixos/display-manager: Support configurable hidden users
Diffstat (limited to 'nixos/modules')
4 files changed, 26 insertions, 2 deletions
diff --git a/nixos/modules/services/misc/nix-daemon.nix b/nixos/modules/services/misc/nix-daemon.nix index f231998d8f4..2da84c031a7 100644 --- a/nixos/modules/services/misc/nix-daemon.nix +++ b/nixos/modules/services/misc/nix-daemon.nix @@ -20,6 +20,8 @@ let extraGroups = [ "nixbld" ]; }; + nixbldUsers = map makeNixBuildUser (range 1 cfg.nrBuildUsers); + nixConf = let # If we're using a chroot for builds, then provide /bin/sh in @@ -357,7 +359,9 @@ in nix.nrBuildUsers = mkDefault (lib.max 10 cfg.maxJobs); - users.extraUsers = map makeNixBuildUser (range 1 cfg.nrBuildUsers); + users.extraUsers = nixbldUsers; + + services.xserver.displayManager.hiddenUsers = map ({ name, ... }: name) nixbldUsers; system.activationScripts.nix = stringAfter [ "etc" "users" ] '' diff --git a/nixos/modules/services/x11/display-managers/default.nix b/nixos/modules/services/x11/display-managers/default.nix index ea45dabd125..c5012dbb5e3 100644 --- a/nixos/modules/services/x11/display-managers/default.nix +++ b/nixos/modules/services/x11/display-managers/default.nix @@ -208,6 +208,14 @@ in description = "Shell commands executed just before the window or desktop manager is started."; }; + hiddenUsers = mkOption { + type = types.listOf types.str; + default = [ "nobody" ]; + description = '' + A list of users which will not be shown in the display manager. + ''; + }; + desktopManagerHandlesLidAndPower = mkOption { type = types.bool; default = true; diff --git a/nixos/modules/services/x11/display-managers/kdm.nix b/nixos/modules/services/x11/display-managers/kdm.nix index 42eaacfe84a..d0b69c5452c 100644 --- a/nixos/modules/services/x11/display-managers/kdm.nix +++ b/nixos/modules/services/x11/display-managers/kdm.nix @@ -38,7 +38,7 @@ let ''} [X-*-Greeter] - HiddenUsers=root,nixbld1,nixbld2,nixbld3,nixbld4,nixbld5,nixbld6,nixbld7,nixbld8,nixbld9,nixbld10 + HiddenUsers=root,${concatStringsSep "," dmcfg.hiddenUsers} PluginsLogin=${kdebase_workspace}/lib/kde4/kgreet_classic.so ${optionalString (cfg.themeDirectory != null) '' diff --git a/nixos/modules/services/x11/display-managers/lightdm.nix b/nixos/modules/services/x11/display-managers/lightdm.nix index 508fd665885..47d94dbe73b 100644 --- a/nixos/modules/services/x11/display-managers/lightdm.nix +++ b/nixos/modules/services/x11/display-managers/lightdm.nix @@ -50,6 +50,16 @@ let ''; }; + hiddenUsers = config.services.xserver.displayManager.hiddenUsers; + + usersConf = writeText "users.conf" + '' + [UserList] + minimum-uid=500 + hidden-users=${concatStringsSep " " hiddenUsers} + hidden-shells=/run/current-system/sw/sbin/nologin + ''; + lightdmConf = writeText "lightdm.conf" '' [LightDM] @@ -84,6 +94,7 @@ in package = wrappedGtkGreeter; }; }; + }; }; @@ -102,6 +113,7 @@ in }; environment.etc."lightdm/lightdm.conf".source = lightdmConf; + environment.etc."lightdm/users.conf".source = usersConf; services.dbus.enable = true; services.dbus.packages = [ lightdm ]; |