mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-08-25 16:02:11 +00:00
fix: prevent cross-tenant DNS poisoning via writable /etc in nsjail (#9194)
* fix: bind /etc resolver files read-only in nsjail sandboxes * docs(nsjail): explain why per-file /etc resolver binds are load-bearing The explicit /etc/hosts, /etc/resolv.conf and /etc/hostname binds look like removable duplication of the read-only /etc bind above them. They are not: on Kubernetes those files are separate kubelet bind-mounts on top of /etc and nsjail's read-only remount is non-recursive, so without these shadow binds they stay writable and a job can persist cross-tenant DNS poisoning for the pod lifetime. Comment guards against a future "dedup cleanup" silently reintroducing the vulnerability. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(nsjail): shorten the load-bearing-bind comment to 3 lines Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -55,6 +55,30 @@ mount {
|
|||||||
is_bind: true
|
is_bind: true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Container runtimes bind exactly these 3 files as separate submounts over
|
||||||
|
# /etc; nsjail's ro remount of /etc is non-recursive so they stay writable.
|
||||||
|
# Load-bearing -- do not remove as redundant with the /etc bind above.
|
||||||
|
mount {
|
||||||
|
src: "/etc/resolv.conf"
|
||||||
|
dst: "/etc/resolv.conf"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hosts"
|
||||||
|
dst: "/etc/hosts"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hostname"
|
||||||
|
dst: "/etc/hostname"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
mount {
|
mount {
|
||||||
src: "/dev/null"
|
src: "/dev/null"
|
||||||
dst: "/dev/null"
|
dst: "/dev/null"
|
||||||
|
|||||||
@@ -55,6 +55,30 @@ mount {
|
|||||||
is_bind: true
|
is_bind: true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Container runtimes bind exactly these 3 files as separate submounts over
|
||||||
|
# /etc; nsjail's ro remount of /etc is non-recursive so they stay writable.
|
||||||
|
# Load-bearing -- do not remove as redundant with the /etc bind above.
|
||||||
|
mount {
|
||||||
|
src: "/etc/resolv.conf"
|
||||||
|
dst: "/etc/resolv.conf"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hosts"
|
||||||
|
dst: "/etc/hosts"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hostname"
|
||||||
|
dst: "/etc/hostname"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
mount {
|
mount {
|
||||||
src: "/dev/null"
|
src: "/dev/null"
|
||||||
dst: "/dev/null"
|
dst: "/dev/null"
|
||||||
|
|||||||
@@ -62,6 +62,30 @@ mount {
|
|||||||
is_bind: true
|
is_bind: true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Container runtimes bind exactly these 3 files as separate submounts over
|
||||||
|
# /etc; nsjail's ro remount of /etc is non-recursive so they stay writable.
|
||||||
|
# Load-bearing -- do not remove as redundant with the /etc bind above.
|
||||||
|
mount {
|
||||||
|
src: "/etc/resolv.conf"
|
||||||
|
dst: "/etc/resolv.conf"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hosts"
|
||||||
|
dst: "/etc/hosts"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hostname"
|
||||||
|
dst: "/etc/hostname"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
mount {
|
mount {
|
||||||
src: "/dev/random"
|
src: "/dev/random"
|
||||||
dst: "/dev/random"
|
dst: "/dev/random"
|
||||||
|
|||||||
@@ -55,6 +55,30 @@ mount {
|
|||||||
is_bind: true
|
is_bind: true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Container runtimes bind exactly these 3 files as separate submounts over
|
||||||
|
# /etc; nsjail's ro remount of /etc is non-recursive so they stay writable.
|
||||||
|
# Load-bearing -- do not remove as redundant with the /etc bind above.
|
||||||
|
mount {
|
||||||
|
src: "/etc/resolv.conf"
|
||||||
|
dst: "/etc/resolv.conf"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hosts"
|
||||||
|
dst: "/etc/hosts"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hostname"
|
||||||
|
dst: "/etc/hostname"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
mount {
|
mount {
|
||||||
src: "/dev/null"
|
src: "/dev/null"
|
||||||
dst: "/dev/null"
|
dst: "/dev/null"
|
||||||
|
|||||||
@@ -55,6 +55,30 @@ mount {
|
|||||||
is_bind: true
|
is_bind: true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Container runtimes bind exactly these 3 files as separate submounts over
|
||||||
|
# /etc; nsjail's ro remount of /etc is non-recursive so they stay writable.
|
||||||
|
# Load-bearing -- do not remove as redundant with the /etc bind above.
|
||||||
|
mount {
|
||||||
|
src: "/etc/resolv.conf"
|
||||||
|
dst: "/etc/resolv.conf"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hosts"
|
||||||
|
dst: "/etc/hosts"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hostname"
|
||||||
|
dst: "/etc/hostname"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
mount {
|
mount {
|
||||||
src: "/dev/null"
|
src: "/dev/null"
|
||||||
dst: "/dev/null"
|
dst: "/dev/null"
|
||||||
|
|||||||
@@ -123,6 +123,30 @@ mount {
|
|||||||
is_bind: true
|
is_bind: true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Container runtimes bind exactly these 3 files as separate submounts over
|
||||||
|
# /etc; nsjail's ro remount of /etc is non-recursive so they stay writable.
|
||||||
|
# Load-bearing -- do not remove as redundant with the /etc bind above.
|
||||||
|
mount {
|
||||||
|
src: "/etc/resolv.conf"
|
||||||
|
dst: "/etc/resolv.conf"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hosts"
|
||||||
|
dst: "/etc/hosts"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hostname"
|
||||||
|
dst: "/etc/hostname"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
mount {
|
mount {
|
||||||
src: "/dev/random"
|
src: "/dev/random"
|
||||||
dst: "/dev/random"
|
dst: "/dev/random"
|
||||||
|
|||||||
@@ -95,6 +95,30 @@ mount {
|
|||||||
is_bind: true
|
is_bind: true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Container runtimes bind exactly these 3 files as separate submounts over
|
||||||
|
# /etc; nsjail's ro remount of /etc is non-recursive so they stay writable.
|
||||||
|
# Load-bearing -- do not remove as redundant with the /etc bind above.
|
||||||
|
mount {
|
||||||
|
src: "/etc/resolv.conf"
|
||||||
|
dst: "/etc/resolv.conf"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hosts"
|
||||||
|
dst: "/etc/hosts"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hostname"
|
||||||
|
dst: "/etc/hostname"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
mount {
|
mount {
|
||||||
src: "/dev/random"
|
src: "/dev/random"
|
||||||
dst: "/dev/random"
|
dst: "/dev/random"
|
||||||
|
|||||||
@@ -153,6 +153,30 @@ mount {
|
|||||||
is_bind: true
|
is_bind: true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Container runtimes bind exactly these 3 files as separate submounts over
|
||||||
|
# /etc; nsjail's ro remount of /etc is non-recursive so they stay writable.
|
||||||
|
# Load-bearing -- do not remove as redundant with the /etc bind above.
|
||||||
|
mount {
|
||||||
|
src: "/etc/resolv.conf"
|
||||||
|
dst: "/etc/resolv.conf"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hosts"
|
||||||
|
dst: "/etc/hosts"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hostname"
|
||||||
|
dst: "/etc/hostname"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
mount {
|
mount {
|
||||||
src: "/dev/random"
|
src: "/dev/random"
|
||||||
dst: "/dev/random"
|
dst: "/dev/random"
|
||||||
|
|||||||
@@ -91,6 +91,30 @@ mount {
|
|||||||
is_bind: true
|
is_bind: true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Container runtimes bind exactly these 3 files as separate submounts over
|
||||||
|
# /etc; nsjail's ro remount of /etc is non-recursive so they stay writable.
|
||||||
|
# Load-bearing -- do not remove as redundant with the /etc bind above.
|
||||||
|
mount {
|
||||||
|
src: "/etc/resolv.conf"
|
||||||
|
dst: "/etc/resolv.conf"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hosts"
|
||||||
|
dst: "/etc/hosts"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hostname"
|
||||||
|
dst: "/etc/hostname"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
mount {
|
mount {
|
||||||
src: "/dev/random"
|
src: "/dev/random"
|
||||||
dst: "/dev/random"
|
dst: "/dev/random"
|
||||||
|
|||||||
@@ -84,6 +84,30 @@ mount {
|
|||||||
is_bind: true
|
is_bind: true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Container runtimes bind exactly these 3 files as separate submounts over
|
||||||
|
# /etc; nsjail's ro remount of /etc is non-recursive so they stay writable.
|
||||||
|
# Load-bearing -- do not remove as redundant with the /etc bind above.
|
||||||
|
mount {
|
||||||
|
src: "/etc/resolv.conf"
|
||||||
|
dst: "/etc/resolv.conf"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hosts"
|
||||||
|
dst: "/etc/hosts"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hostname"
|
||||||
|
dst: "/etc/hostname"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
mount {
|
mount {
|
||||||
src: "/dev/random"
|
src: "/dev/random"
|
||||||
dst: "/dev/random"
|
dst: "/dev/random"
|
||||||
|
|||||||
@@ -92,6 +92,30 @@ mount {
|
|||||||
is_bind: true
|
is_bind: true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Container runtimes bind exactly these 3 files as separate submounts over
|
||||||
|
# /etc; nsjail's ro remount of /etc is non-recursive so they stay writable.
|
||||||
|
# Load-bearing -- do not remove as redundant with the /etc bind above.
|
||||||
|
mount {
|
||||||
|
src: "/etc/resolv.conf"
|
||||||
|
dst: "/etc/resolv.conf"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hosts"
|
||||||
|
dst: "/etc/hosts"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hostname"
|
||||||
|
dst: "/etc/hostname"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
mount {
|
mount {
|
||||||
src: "/dev/random"
|
src: "/dev/random"
|
||||||
dst: "/dev/random"
|
dst: "/dev/random"
|
||||||
|
|||||||
@@ -89,6 +89,30 @@ mount {
|
|||||||
is_bind: true
|
is_bind: true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Container runtimes bind exactly these 3 files as separate submounts over
|
||||||
|
# /etc; nsjail's ro remount of /etc is non-recursive so they stay writable.
|
||||||
|
# Load-bearing -- do not remove as redundant with the /etc bind above.
|
||||||
|
mount {
|
||||||
|
src: "/etc/resolv.conf"
|
||||||
|
dst: "/etc/resolv.conf"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hosts"
|
||||||
|
dst: "/etc/hosts"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hostname"
|
||||||
|
dst: "/etc/hostname"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
mount {
|
mount {
|
||||||
src: "/dev/random"
|
src: "/dev/random"
|
||||||
dst: "/dev/random"
|
dst: "/dev/random"
|
||||||
|
|||||||
@@ -78,6 +78,30 @@ mount {
|
|||||||
is_bind: true
|
is_bind: true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Container runtimes bind exactly these 3 files as separate submounts over
|
||||||
|
# /etc; nsjail's ro remount of /etc is non-recursive so they stay writable.
|
||||||
|
# Load-bearing -- do not remove as redundant with the /etc bind above.
|
||||||
|
mount {
|
||||||
|
src: "/etc/resolv.conf"
|
||||||
|
dst: "/etc/resolv.conf"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hosts"
|
||||||
|
dst: "/etc/hosts"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hostname"
|
||||||
|
dst: "/etc/hostname"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
mount {
|
mount {
|
||||||
src: "/dev/random"
|
src: "/dev/random"
|
||||||
dst: "/dev/random"
|
dst: "/dev/random"
|
||||||
|
|||||||
@@ -91,6 +91,30 @@ mount {
|
|||||||
is_bind: true
|
is_bind: true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Container runtimes bind exactly these 3 files as separate submounts over
|
||||||
|
# /etc; nsjail's ro remount of /etc is non-recursive so they stay writable.
|
||||||
|
# Load-bearing -- do not remove as redundant with the /etc bind above.
|
||||||
|
mount {
|
||||||
|
src: "/etc/resolv.conf"
|
||||||
|
dst: "/etc/resolv.conf"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hosts"
|
||||||
|
dst: "/etc/hosts"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hostname"
|
||||||
|
dst: "/etc/hostname"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
mount {
|
mount {
|
||||||
src: "/dev/random"
|
src: "/dev/random"
|
||||||
dst: "/dev/random"
|
dst: "/dev/random"
|
||||||
|
|||||||
@@ -107,6 +107,30 @@ mount {
|
|||||||
is_bind: true
|
is_bind: true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Container runtimes bind exactly these 3 files as separate submounts over
|
||||||
|
# /etc; nsjail's ro remount of /etc is non-recursive so they stay writable.
|
||||||
|
# Load-bearing -- do not remove as redundant with the /etc bind above.
|
||||||
|
mount {
|
||||||
|
src: "/etc/resolv.conf"
|
||||||
|
dst: "/etc/resolv.conf"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hosts"
|
||||||
|
dst: "/etc/hosts"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hostname"
|
||||||
|
dst: "/etc/hostname"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
mount {
|
mount {
|
||||||
dst: "/dev/shm"
|
dst: "/dev/shm"
|
||||||
fstype: "tmpfs"
|
fstype: "tmpfs"
|
||||||
|
|||||||
@@ -92,6 +92,30 @@ mount {
|
|||||||
is_bind: true
|
is_bind: true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Container runtimes bind exactly these 3 files as separate submounts over
|
||||||
|
# /etc; nsjail's ro remount of /etc is non-recursive so they stay writable.
|
||||||
|
# Load-bearing -- do not remove as redundant with the /etc bind above.
|
||||||
|
mount {
|
||||||
|
src: "/etc/resolv.conf"
|
||||||
|
dst: "/etc/resolv.conf"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hosts"
|
||||||
|
dst: "/etc/hosts"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hostname"
|
||||||
|
dst: "/etc/hostname"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
mount {
|
mount {
|
||||||
src: "/sys/devices/system/cpu"
|
src: "/sys/devices/system/cpu"
|
||||||
dst: "/sys/devices/system/cpu"
|
dst: "/sys/devices/system/cpu"
|
||||||
|
|||||||
@@ -92,6 +92,30 @@ mount {
|
|||||||
is_bind: true
|
is_bind: true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Container runtimes bind exactly these 3 files as separate submounts over
|
||||||
|
# /etc; nsjail's ro remount of /etc is non-recursive so they stay writable.
|
||||||
|
# Load-bearing -- do not remove as redundant with the /etc bind above.
|
||||||
|
mount {
|
||||||
|
src: "/etc/resolv.conf"
|
||||||
|
dst: "/etc/resolv.conf"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hosts"
|
||||||
|
dst: "/etc/hosts"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hostname"
|
||||||
|
dst: "/etc/hostname"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
mount {
|
mount {
|
||||||
src: "/dev/random"
|
src: "/dev/random"
|
||||||
dst: "/dev/random"
|
dst: "/dev/random"
|
||||||
|
|||||||
@@ -84,6 +84,30 @@ mount {
|
|||||||
is_bind: true
|
is_bind: true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Container runtimes bind exactly these 3 files as separate submounts over
|
||||||
|
# /etc; nsjail's ro remount of /etc is non-recursive so they stay writable.
|
||||||
|
# Load-bearing -- do not remove as redundant with the /etc bind above.
|
||||||
|
mount {
|
||||||
|
src: "/etc/resolv.conf"
|
||||||
|
dst: "/etc/resolv.conf"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hosts"
|
||||||
|
dst: "/etc/hosts"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
|
mount {
|
||||||
|
src: "/etc/hostname"
|
||||||
|
dst: "/etc/hostname"
|
||||||
|
is_bind: true
|
||||||
|
mandatory: false
|
||||||
|
}
|
||||||
|
|
||||||
mount {
|
mount {
|
||||||
src: "/dev/random"
|
src: "/dev/random"
|
||||||
dst: "/dev/random"
|
dst: "/dev/random"
|
||||||
|
|||||||
Reference in New Issue
Block a user