summaryrefslogtreecommitdiffstats
path: root/tv/2configs/test.nix
diff options
context:
space:
mode:
authormakefu <github@syntax-fehler.de>2015-08-31 10:47:29 +0200
committermakefu <github@syntax-fehler.de>2015-08-31 10:47:29 +0200
commit2eb8bcf9d1c293a8b28730c9a12d9a857c5a43a7 (patch)
treec8a1d55a148e59f51a400e0d5dc11780d4e4005c /tv/2configs/test.nix
parent0acd7f23e1e3adf4bf1427f186a7bf5505ff910d (diff)
parent83f06535de527c7470f8ff9c8b5e3a4632cf7cb9 (diff)
Merge remote-tracking branch 'cd/master'
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