From ae327cc50fd9d3e59e9f60088243adfc69cb312e Mon Sep 17 00:00:00 2001 From: lonkaars Date: Tue, 6 Feb 2024 10:46:39 +0100 Subject: fix busybox booting into root shell --- rootfs/etc/init.d/rcS | 3 +++ rootfs/etc/inittab | 7 +++---- rootfs/etc/passwd | 0 rootfs/etc/profile | 1 + rootfs/etc/shadow | 0 state/gen | 5 +++++ util/mkrootfs | 17 +++++++---------- 7 files changed, 19 insertions(+), 14 deletions(-) delete mode 100644 rootfs/etc/passwd delete mode 100644 rootfs/etc/shadow diff --git a/rootfs/etc/init.d/rcS b/rootfs/etc/init.d/rcS index fc699e4..be9ca09 100755 --- a/rootfs/etc/init.d/rcS +++ b/rootfs/etc/init.d/rcS @@ -1,2 +1,5 @@ #!/bin/sh +# mount all drives in /etc/fstab /bin/mount -a +# set the system hostname +/bin/hostname -F /etc/hostname diff --git a/rootfs/etc/inittab b/rootfs/etc/inittab index 5f4a5fa..805a39d 100644 --- a/rootfs/etc/inittab +++ b/rootfs/etc/inittab @@ -1,9 +1,8 @@ # /etc/inittab init(8) - ::sysinit:/etc/init.d/rcS ::shutdown:/bin/umount -a -r ::restart:/sbin/init -# this could be really unsafe in production -::respawn:/sbin/getty -L ttyS0 115200 vt100 -ttyS0::respawn:-/bin/login -f root +# put a shell on ttyS0 (serial header on board) +ttyS0::respawn:/bin/sh + diff --git a/rootfs/etc/passwd b/rootfs/etc/passwd deleted file mode 100644 index e69de29..0000000 diff --git a/rootfs/etc/profile b/rootfs/etc/profile index 3c2be89..557b21a 100644 --- a/rootfs/etc/profile +++ b/rootfs/etc/profile @@ -1,4 +1,5 @@ # /etc/profile umask 022 export PATH="$PATH:/usr/bin" +cd "$HOME" diff --git a/rootfs/etc/shadow b/rootfs/etc/shadow deleted file mode 100644 index e69de29..0000000 diff --git a/state/gen b/state/gen index ddaf9d1..720c1d3 100755 --- a/state/gen +++ b/state/gen @@ -77,6 +77,11 @@ if [ -n "$SDCARD_DISK" ] ; then if ($6 != "ROOTFS") exit(1) }' && SDCARD_FMT_OK=0 fi + else + # assume sd card is formatted correctly if SDCARD_PART_BOOT and + # SDCARD_PART_ROOTFS are already set + SDCARD_PART_OK=0 + SDCARD_FMT_OK=0 fi fi set_state sdcard_part $SDCARD_PART_OK diff --git a/util/mkrootfs b/util/mkrootfs index 5818fdb..91eff68 100755 --- a/util/mkrootfs +++ b/util/mkrootfs @@ -28,13 +28,10 @@ cp $CPFLAGS "$OVERLAY_FS/." . # setuid busybox chmod a=xrs,u+w bin/busybox -# # create /etc/passwd -# if ! [ -e etc/passwd ] ; then -# # TODO: add root to a group -# echo "root:x:0:0::/root:/bin/sh" > etc/passwd -# fi -# # and /etc/shadow -# if ! [ -e etc/shadow ] ; then -# echo "root:$(mkpasswd alpine):::::::" > etc/shadow -# fi -# +# create a root user +! [ -e etc/passwd ] && echo "root:x:0:0::/root:/bin/sh" > etc/passwd +! [ -e etc/shadow ] && echo "root:!:0:0:99999:0:::" > etc/shadow +! [ -e etc/group ] && echo "root:x:0:root" > etc/shadow + +# exit safely (continue makefile) +exit 0 -- cgit v1.2.3