summaryrefslogtreecommitdiffstats
path: root/tv/2configs/test.nix
diff options
context:
space:
mode:
Diffstat (limited to 'tv/2configs/test.nix')
-rw-r--r--tv/2configs/test.nix31
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