about summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorBjørn Forsman <bjorn.forsman@gmail.com>2023-03-09 20:54:00 +0100
committerBjørn Forsman <bjorn.forsman@gmail.com>2023-03-19 09:28:35 +0100
commit48b0aa71646b3600f37dfa258c9fe16d7bb6747f (patch)
tree431d1c3a2832e670562332bc913ac8cd04757a53 /nixos
parent21c47047c887ecb1d12292c9b9a675728c93c67f (diff)
nixos/sssd: create symlinks in /etc to fix sssctl
Without this, sssctl fails to read its configuration. Update the NixOS
test to ensure sssctl doesn't regress.
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/services/misc/sssd.nix5
-rw-r--r--nixos/tests/sssd.nix1
2 files changed, 6 insertions, 0 deletions
diff --git a/nixos/modules/services/misc/sssd.nix b/nixos/modules/services/misc/sssd.nix
index edd5750a4a478..7c7a3b464a836 100644
--- a/nixos/modules/services/misc/sssd.nix
+++ b/nixos/modules/services/misc/sssd.nix
@@ -77,6 +77,10 @@ in {
   };
   config = mkMerge [
     (mkIf cfg.enable {
+      # For `sssctl` to work.
+      environment.etc."sssd/sssd.conf".source = settingsFile;
+      environment.etc."sssd/conf.d".source = "${dataDir}/conf.d";
+
       systemd.services.sssd = {
         description = "System Security Services Daemon";
         wantedBy    = [ "multi-user.target" ];
@@ -101,6 +105,7 @@ in {
           EnvironmentFile = lib.mkIf (cfg.environmentFile != null) cfg.environmentFile;
         };
         preStart = ''
+          mkdir -p "${dataDir}/conf.d"
           [ -f ${settingsFile} ] && rm -f ${settingsFile}
           old_umask=$(umask)
           umask 0177
diff --git a/nixos/tests/sssd.nix b/nixos/tests/sssd.nix
index 25527cb59a59b..c8d356e074ad5 100644
--- a/nixos/tests/sssd.nix
+++ b/nixos/tests/sssd.nix
@@ -13,5 +13,6 @@ import ./make-test-python.nix ({ pkgs, ... }:
       start_all()
       machine.wait_for_unit("multi-user.target")
       machine.wait_for_unit("sssd.service")
+      machine.succeed("sssctl config-check")
     '';
 })