diff options
Diffstat (limited to 'nixos/modules')
-rw-r--r-- | nixos/modules/virtualisation/containers.nix | 1 | ||||
-rw-r--r-- | nixos/modules/virtualisation/nixos-container.pl | 5 |
2 files changed, 4 insertions, 2 deletions
diff --git a/nixos/modules/virtualisation/containers.nix b/nixos/modules/virtualisation/containers.nix index c461cf8c00cb..ea6bc641dad8 100644 --- a/nixos/modules/virtualisation/containers.nix +++ b/nixos/modules/virtualisation/containers.nix @@ -10,6 +10,7 @@ let isExecutable = true; src = ./nixos-container.pl; perl = "${pkgs.perl}/bin/perl -I${pkgs.perlPackages.FileSlurp}/lib/perl5/site_perl"; + su = "${pkgs.shadow.su}/bin/su"; inherit (pkgs) utillinux; }; diff --git a/nixos/modules/virtualisation/nixos-container.pl b/nixos/modules/virtualisation/nixos-container.pl index 94edfb37948a..1455f7143f13 100644 --- a/nixos/modules/virtualisation/nixos-container.pl +++ b/nixos/modules/virtualisation/nixos-container.pl @@ -8,6 +8,7 @@ use Fcntl ':flock'; use Getopt::Long qw(:config gnu_getopt); my $nsenter = "@utillinux@/bin/nsenter"; +my $su = "@su@"; # Ensure a consistent umask. umask 0022; @@ -271,14 +272,14 @@ elsif ($action eq "login") { } elsif ($action eq "root-login") { - runInContainer("su", "root", "-l"); + runInContainer("@su@", "root", "-l"); } elsif ($action eq "run") { shift @ARGV; shift @ARGV; # Escape command. my $s = join(' ', map { s/'/'\\''/g; "'$_'" } @ARGV); - runInContainer("su", "root", "-l", "-c", "exec " . $s); + runInContainer("@su@", "root", "-l", "-c", "exec " . $s); } elsif ($action eq "show-ip") { |