mirror of
https://github.com/NixOS/nix.git
synced 2024-11-22 06:42:28 +00:00
Wait with making /etc unwritable until after build env setup
This fixes /etc/nsswitch.conf
(cherry picked from commit bbba49b3e4
)
This commit is contained in:
parent
1083ecbb2b
commit
11522a573d
@ -1024,10 +1024,6 @@ void LocalDerivationGoal::startBuilder()
|
||||
"nobody:x:65534:65534:Nobody:/:/noshell\n",
|
||||
sandboxUid(), sandboxGid(), settings.sandboxBuildDir));
|
||||
|
||||
/* Make /etc unwritable */
|
||||
if (!parsedDrv->useUidRange())
|
||||
chmod_(chrootRootDir + "/etc", 0555);
|
||||
|
||||
/* Save the mount- and user namespace of the child. We have to do this
|
||||
*before* the child does a chroot. */
|
||||
sandboxMountNamespace = open(fmt("/proc/%d/ns/mnt", (pid_t) pid).c_str(), O_RDONLY);
|
||||
@ -1912,6 +1908,10 @@ void LocalDerivationGoal::runChild()
|
||||
}
|
||||
}
|
||||
|
||||
/* Make /etc unwritable */
|
||||
if (!parsedDrv->useUidRange())
|
||||
chmod_(chrootRootDir + "/etc", 0555);
|
||||
|
||||
/* Unshare this mount namespace. This is necessary because
|
||||
pivot_root() below changes the root of the mount
|
||||
namespace. This means that the call to setns() in
|
||||
|
Loading…
Reference in New Issue
Block a user