aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortdro <tdro@users.noreply.github.com>2023-09-02 19:50:22 -0400
committertdro <tdro@users.noreply.github.com>2023-09-02 19:50:22 -0400
commit5f1007e9d4521729e651e91cb5834ae4977b7638 (patch)
treeceb67c201db729a7efffe2f299c4294ef02b5bdf
parent458230d9b030e685b3720e5f37f8d32a144eb70c (diff)
downloaddotfiles-5f1007e9d4521729e651e91cb5834ae4977b7638.tar.gz
dotfiles-5f1007e9d4521729e651e91cb5834ae4977b7638.tar.bz2
dotfiles-5f1007e9d4521729e651e91cb5834ae4977b7638.zip
.config/nixpkgs/jails: Add firejail
-rw-r--r--.config/nixpkgs/jails/firejail/jail.nix48
1 files changed, 48 insertions, 0 deletions
diff --git a/.config/nixpkgs/jails/firejail/jail.nix b/.config/nixpkgs/jails/firejail/jail.nix
new file mode 100644
index 0000000..4f5e5e1
--- /dev/null
+++ b/.config/nixpkgs/jails/firejail/jail.nix
@@ -0,0 +1,48 @@
+let
+
+ # nix-shell -E 'import (builtins.fetchurl "$url")'
+ # https://www.man7.org/linux/man-pages/man1/Firejail.1.html
+
+ name = "nix-shell.firejail";
+
+ pkgs = import (builtins.fetchTarball {
+ url = "https://releases.nixos.org/nixos/22.11/nixos-22.11.466.596a8e828c5/nixexprs.tar.xz";
+ sha256 = "1367bad5zz0mfm4czb6p0s0ni38f0x1ffh02z76rx4nranipqbgg";
+ }) { };
+
+ firejail = {
+ rootfs ? "rootfs",
+ options ? [ ],
+ path ? [ pkgs.busybox ],
+ entrypoint ? "/bin/sh"
+ }:
+ pkgs.writeShellApplication {
+ inherit name;
+ text = ''
+ set -euxo pipefail
+ PATH=${pkgs.lib.strings.makeBinPath [ pkgs.firejail pkgs.coreutils ]}
+ mkdir --parents '${rootfs}'
+ firejail \
+ --chroot '${rootfs}' \
+ ${pkgs.lib.strings.concatMapStringsSep " " (value: value) options} \
+ -- /usr/bin/env --ignore-environment ${
+ pkgs.writeScript "entrypoint-${name}" ''
+ set -eu
+ export PATH=${pkgs.lib.strings.makeBinPath path}
+ ${entrypoint}
+ ''
+ };
+ '';
+ };
+
+ jail = firejail {
+ options = [ ];
+ };
+
+in pkgs.mkShell {
+ inherit name;
+ shellHook = ''
+ printf '%s\n' "${jail}/bin/${jail.name}"
+ exec "${jail}/bin/${jail.name}"
+ '';
+}