nixos/shadow: use su from sudo-rs when enabled

When security.sudo-rs.enable is true, use the memory-safe su
implementation from sudo-rs instead of the one from shadow.
This commit is contained in:
Aliaksandr
2026-03-01 12:33:55 +02:00
parent 1ab2f5ea07
commit 949f73fcf9
2 changed files with 10 additions and 1 deletions
+8 -1
View File
@@ -22,6 +22,13 @@ in
'';
};
security.shadow.su.package = lib.mkPackageOption pkgs [ "shadow" "su" ] {
extraDescription = ''
This can be overridden by other modules (e.g. sudo-rs) to provide
an alternative `su` implementation.
'';
};
security.loginDefs = {
package = lib.mkPackageOption pkgs "shadow" { };
@@ -262,7 +269,7 @@ in
};
in
{
su = mkSetuidRoot "${cfg.package.su}/bin/su";
su = mkSetuidRoot "${config.security.shadow.su.package}/bin/su";
sg = mkSetuidRoot "${cfg.package.out}/bin/sg";
newgrp = mkSetuidRoot "${cfg.package.out}/bin/newgrp";
newuidmap = mkSetuidRoot "${cfg.package.out}/bin/newuidmap";
+2
View File
@@ -215,6 +215,8 @@ in
];
security.sudo.enable = lib.mkDefault false;
security.shadow.su.package = lib.mkDefault cfg.package;
security.sudo-rs.extraRules =
let
defaultRule =