Mutable users configured to linger shouldn't have their lingering deconfigured by the systemd unit for managing lingering users. Test in both the scenario where there are no users configured in NixOS to linger, and where there are such users, to catch the case at https://github.com/NixOS/nixpkgs/pull/363209#issuecomment-2987448905 where mutable lingering users would be incorrectly cleared if there were any immutable lingering users.
40 lines
1.1 KiB
Nix
40 lines
1.1 KiB
Nix
rec {
|
|
name = "systemd-user-linger";
|
|
|
|
nodes.machine = {
|
|
users.users = {
|
|
alice = {
|
|
isNormalUser = true;
|
|
linger = true;
|
|
uid = 1000;
|
|
};
|
|
|
|
bob = {
|
|
isNormalUser = true;
|
|
linger = false;
|
|
uid = 1001;
|
|
};
|
|
};
|
|
};
|
|
|
|
testScript =
|
|
let
|
|
uidStrings = builtins.mapAttrs (k: v: builtins.toString v.uid) nodes.machine.users.users;
|
|
in
|
|
''
|
|
machine.wait_for_file("/var/lib/systemd/linger/alice")
|
|
machine.succeed("systemctl status user-${uidStrings.alice}.slice")
|
|
|
|
machine.fail("test -e /var/lib/systemd/linger/bob")
|
|
machine.fail("systemctl status user-${uidStrings.bob}.slice")
|
|
|
|
with subtest("mutable users can linger"):
|
|
machine.succeed("useradd clare")
|
|
machine.succeed("test ! -e /var/lib/systemd/linger/clare")
|
|
machine.succeed("loginctl enable-linger clare")
|
|
machine.succeed("test -e /var/lib/systemd/linger/clare")
|
|
machine.systemctl("restart linger-users")
|
|
machine.succeed("test -e /var/lib/systemd/linger/clare")
|
|
'';
|
|
}
|