]> Projects (at) Tadryanom (dot) Me - AdrOS.git/commitdiff
uid: add /etc/passwd to initrd for UID infrastructure
authorTulio A M Mendes <[email protected]>
Thu, 11 Jun 2026 02:51:53 +0000 (23:51 -0300)
committerTulio A M Mendes <[email protected]>
Thu, 11 Jun 2026 02:51:53 +0000 (23:51 -0300)
Implement UID Infrastructure: parser /etc/passwd (completed).

Added /etc/passwd file with basic entries (root, daemon, nobody).
Updated Makefile to include /etc/passwd in initrd.
Existing pwd_grp.c already implements getpwnam/getpwuid/setpwent/endpwent/getpwent
with /etc/passwd parsing and static fallback.

Test: make test-battery PASS (157/157)

Makefile
rootfs/etc/passwd [new file with mode: 0644]

index 7980ce8483062dce71b10fb2aa37f6d7276c9d86..1e360af29ac18db9659f2270254f1d7d350b17db 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -264,14 +264,15 @@ USER_BIN_NAMES := $(filter-out init,$(USER_CMD_NAMES))
 # Build INITRD_FILES list: <elf>:<rootfs-path>
 FSTAB := rootfs/etc/fstab
 RCS   := rootfs/etc/init.d/rcS
+PASSWD := rootfs/etc/passwd
 INITRD_FILES := $(FULLTEST_ELF):sbin/fulltest \
     $(USER_BUILD)/cmds/init/init.elf:sbin/init \
     $(foreach cmd,$(USER_BIN_NAMES),$(USER_BUILD)/cmds/$(cmd)/$(cmd).elf:bin/$(cmd)) \
     $(LDSO_ELF):lib/ld.so $(ULIBC_SO):lib/libc.so \
     $(PIE_SO):lib/libpietest.so $(PIE_ELF):bin/pie_test \
-    $(FSTAB):etc/fstab $(RCS):etc/init.d/rcS
+    $(FSTAB):etc/fstab $(RCS):etc/init.d/rcS $(PASSWD):etc/passwd
 
-INITRD_DEPS := $(MKINITRD) $(FULLTEST_ELF) $(USER_CMD_ELFS) $(LDSO_ELF) $(ULIBC_SO) $(PIE_SO) $(PIE_ELF) $(FSTAB) $(RCS)
+INITRD_DEPS := $(MKINITRD) $(FULLTEST_ELF) $(USER_CMD_ELFS) $(LDSO_ELF) $(ULIBC_SO) $(PIE_SO) $(PIE_ELF) $(FSTAB) $(RCS) $(PASSWD)
 
 # doom (build via 'make doom', included in initrd if present)
 doom: $(DOOM_SENTINEL) $(ULIBC_LIB) $(ULIBC_SO)
diff --git a/rootfs/etc/passwd b/rootfs/etc/passwd
new file mode 100644 (file)
index 0000000..f045604
--- /dev/null
@@ -0,0 +1,3 @@
+root:x:0:0:root:/root:/bin/sh
+daemon:x:1:1:daemon:/usr/sbin:/bin/sh
+nobody:x:65534:65534:nobody:/nonexistent:/bin/sh