[PATCH 1/5] host/rootfs: make passwd and group links into /run

Alyssa Ross
2025-12-09T08:56:56Z

This will allow us to give shadow's useradd /run as a prefix, and have
it be able to add users at runtime.

Signed-off-by: Alyssa Ross <hi@alyssa.is>
---
host/rootfs/file-list.mk | 6 ++++--
host/rootfs/image/etc/group | 16 +---------------
host/rootfs/image/etc/passwd | 2 +-
.../etc/{ => s6-linux-init/run-image/etc}/group | 0
.../run-image/etc}/group.license | 0
.../etc/{ => s6-linux-init/run-image/etc}/passwd | 0
.../run-image/etc}/passwd.license | 0
7 files changed, 6 insertions(+), 18 deletions(-)
mode change 100644 => 120000 host/rootfs/image/etc/group
mode change 100644 => 120000 host/rootfs/image/etc/passwd
copy host/rootfs/image/etc/{ => s6-linux-init/run-image/etc}/group (100%)
rename host/rootfs/image/etc/{ => s6-linux-init/run-image/etc}/group.license (100%)
copy host/rootfs/image/etc/{ => s6-linux-init/run-image/etc}/passwd (100%)
rename host/rootfs/image/etc/{ => s6-linux-init/run-image/etc}/passwd.license (100%)

diff --git a/host/rootfs/file-list.mk b/host/rootfs/file-list.mk
index df22bce..6ab78e6 100644
--- a/host/rootfs/file-list.mk
+++ b/host/rootfs/file-list.mk
@@ -4,13 +4,13 @@
FILES = \
image/etc/fonts/fonts.conf \
image/etc/fstab \
- image/etc/group \
image/etc/init \
image/etc/login \
image/etc/parse-devname \
- image/etc/passwd \
image/etc/s6-linux-init/env/WAYLAND_DISPLAY \
image/etc/s6-linux-init/env/XDG_RUNTIME_DIR \
+ image/etc/s6-linux-init/run-image/etc/group \
+ image/etc/s6-linux-init/run-image/etc/passwd \
image/etc/s6-linux-init/run-image/service/getty-tty1/run \
image/etc/s6-linux-init/run-image/service/getty-tty2/run \
image/etc/s6-linux-init/run-image/service/getty-tty3/run \
@@ -68,6 +68,8 @@ FILES = \

LINKS = \
image/bin \
+ image/etc/group \
+ image/etc/passwd \
image/etc/s6-linux-init/run-image/opengl-driver \
image/etc/s6-linux-init/run-image/service/vmm/template/run \
image/lib \
diff --git a/host/rootfs/image/etc/group b/host/rootfs/image/etc/group
deleted file mode 100644
index e3ade46..0000000
--- a/host/rootfs/image/etc/group
+++ /dev/null
@@ -1,15 +0,0 @@
-root:x:0:root
-clock:x:1:
-dialout:x:2:
-kmem:x:3:
-input:x:4:
-tty:x:5:
-video:x:6:
-render:x:7:
-sgx:x:8:
-audio:x:9:
-lp:x:10:
-disk:x:11:
-cdrom:x:12:
-tape:x:13:
-kvm:x:14:
diff --git a/host/rootfs/image/etc/group b/host/rootfs/image/etc/group
new file mode 120000
index 0000000..a9b248e
--- /dev/null
+++ b/host/rootfs/image/etc/group
@@ -0,0 +1 @@
+/run/etc/group
\ No newline at end of file
diff --git a/host/rootfs/image/etc/passwd b/host/rootfs/image/etc/passwd
deleted file mode 100644
index 29f3b25..0000000
--- a/host/rootfs/image/etc/passwd
+++ /dev/null
@@ -1 +0,0 @@
-root:x:0:0:System administrator:/:/bin/sh
diff --git a/host/rootfs/image/etc/passwd b/host/rootfs/image/etc/passwd
new file mode 120000
index 0000000..889bb76
--- /dev/null
+++ b/host/rootfs/image/etc/passwd
@@ -0,0 +1 @@
+/run/etc/passwd
\ No newline at end of file
diff --git a/host/rootfs/image/etc/group b/host/rootfs/image/etc/s6-linux-init/run-image/etc/group
similarity index 100%
copy from host/rootfs/image/etc/group
copy to host/rootfs/image/etc/s6-linux-init/run-image/etc/group
diff --git a/host/rootfs/image/etc/group.license b/host/rootfs/image/etc/s6-linux-init/run-image/etc/group.license
similarity index 100%
rename from host/rootfs/image/etc/group.license
rename to host/rootfs/image/etc/s6-linux-init/run-image/etc/group.license
diff --git a/host/rootfs/image/etc/passwd b/host/rootfs/image/etc/s6-linux-init/run-image/etc/passwd
similarity index 100%
copy from host/rootfs/image/etc/passwd
copy to host/rootfs/image/etc/s6-linux-init/run-image/etc/passwd
diff --git a/host/rootfs/image/etc/passwd.license b/host/rootfs/image/etc/s6-linux-init/run-image/etc/passwd.license
similarity index 100%
rename from host/rootfs/image/etc/passwd.license
rename to host/rootfs/image/etc/s6-linux-init/run-image/etc/passwd.license

base-commit: d0efa283216ebc503b4b715c051518ae7dbd8409
--
2.51.0