diff options
Diffstat (limited to 'tv/2configs/test.nix')
-rw-r--r-- | tv/2configs/test.nix | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tv/2configs/test.nix b/tv/2configs/test.nix new file mode 100644 index 000000000..409b4e9b4 --- /dev/null +++ b/tv/2configs/test.nix @@ -0,0 +1,31 @@ +{ config, lib, pkgs, ... }: + +with import ../4lib { inherit lib pkgs; }; + +let + out = { + environment.systemPackages = [ + su-test + ]; + security.sudo.extraConfig = '' + tv ALL=(test) NOPASSWD: ALL + ''; + users.extraUsers.test = { + shell = "${test-shell}"; + }; + }; + + su-test = pkgs.execveBin "su-test" rec { + filename = "/var/setuid-wrappers/sudo"; + argv = ["sudo" "-u" "test" "-i"]; + }; + + test-shell = pkgs.execve "test-shell" rec { + filename = "${pkgs.bash}/bin/bash"; + argv = ["sh" "--noprofile" "-l"]; + envp.ENV = pkgs.writeText "test-env" '' + ${shell.cat "Hello, `$(j0w\nd0g!)`!\\o/\n"} >&2 + ''; + }; + +in out |