[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#75810] [PATCH v5 04/14] daemon: Remount inputs as read-only.
From: |
Ludovic Courtès |
Subject: |
[bug#75810] [PATCH v5 04/14] daemon: Remount inputs as read-only. |
Date: |
Fri, 14 Mar 2025 18:48:01 +0100 |
* nix/libstore/build.cc (DerivationGoal::runChild): Remount ‘target’ as
read-only.
Reported-by: Reepca Russelstein <reepca@russelstein.xyz>
Change-Id: Ib7201bcf4363be566f205d23d17fe2f55d3ad666
---
nix/libstore/build.cc | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc
index 193b279b88..3861a1ffd9 100644
--- a/nix/libstore/build.cc
+++ b/nix/libstore/build.cc
@@ -2107,8 +2107,15 @@ void DerivationGoal::runChild()
createDirs(dirOf(target));
writeFile(target, "");
}
+
+ /* Extra flags passed with MS_BIND are ignored, hence the
+ extra MS_REMOUNT. */
if (mount(source.c_str(), target.c_str(), "", MS_BIND, 0) ==
-1)
throw SysError(format("bind mount from `%1%' to `%2%'
failed") % source % target);
+ if (source.compare(0, settings.nixStore.length(),
settings.nixStore) == 0) {
+ if (mount(source.c_str(), target.c_str(), "", MS_BIND |
MS_REMOUNT | MS_RDONLY, 0) == -1)
+ throw SysError(format("read-only remount of `%1%'
failed") % target);
+ }
}
/* Bind a new instance of procfs on /proc to reflect our
--
2.48.1
- [bug#75810] [PATCH v5 00/14] Rootless guix-daemon, Ludovic Courtès, 2025/03/14
- [bug#75810] [PATCH v5 04/14] daemon: Remount inputs as read-only.,
Ludovic Courtès <=
- [bug#75810] [PATCH v5 02/14] daemon: Bind-mount /etc/nsswitch.conf & co. only if it exists., Ludovic Courtès, 2025/03/14
- [bug#75810] [PATCH v5 05/14] daemon: Remount root directory as read-only., Ludovic Courtès, 2025/03/14
- [bug#75810] [PATCH v5 01/14] daemon: Use ‘close_range’ where available., Ludovic Courtès, 2025/03/14
- [bug#75810] [PATCH v5 07/14] daemon: Create /var/guix/profiles/per-user unconditionally., Ludovic Courtès, 2025/03/14
- [bug#75810] [PATCH v5 03/14] daemon: Bind-mount all the inputs, not just directories., Ludovic Courtès, 2025/03/14
- [bug#75810] [PATCH v5 13/14] guix-install.sh: Support the unprivileged daemon where possible., Ludovic Courtès, 2025/03/14
- [bug#75810] [PATCH v5 12/14] etc: systemd services: Run ‘guix-daemon’ as an unprivileged user., Ludovic Courtès, 2025/03/14
- [bug#75810] [PATCH v5 14/14] DRAFT gnu: guix: Update to 00562be., Ludovic Courtès, 2025/03/14
- [bug#75810] [PATCH v5 06/14] daemon: Allow running as non-root with unprivileged user namespaces., Ludovic Courtès, 2025/03/14
- [bug#75810] [PATCH v5 11/14] tests: Run in a chroot and unprivileged user namespaces., Ludovic Courtès, 2025/03/14