I am reworking this (requiring console login) as couple of packages for the packages feed, although it may require an image.mk or packages Makefile hook in order to embed an appropriate inittab into the image (since the inittab will need to be modified and we need to guarantee the correct order of actions; and inittab comes from base-files which is last thing done in the packages Makefile).

Regards,

Daniel

On 16/12/15 09:59 AM, [email protected] wrote:
From: Daniel Dickinson <[email protected]>

Some devices like generic PC's and Raspberry Pi/Pi2 are much more trivial to
get hardware console access than a typical router scenario and therefore really
ought to require login even on hardware console rather than a hardware console
granting passwordless root access.

Since we're at it, we also make requiring login on hardware console an
easily configured build-time option.

Signed-off-by: Daniel Dickinson <[email protected]>
---
  config/Config-build.in                             | 17 ++++++++++++++++
  package/base-files/Makefile                        | 23 +++++++++++++++++++++-
  package/utils/busybox/Config-defaults.in           |  3 +++
  .../linux/adm5120/base-files-console/etc/inittab   |  5 +++++
  .../base-files-console/etc/uci-defaults/inittab    |  6 ++++++
  .../linux/brcm2708/base-files-console/etc/inittab  |  4 ++++
  .../linux/ipq806x/base-files-console/etc/inittab   |  4 ++++
  target/linux/lantiq/base-files-console/etc/inittab |  3 +++
  target/linux/malta/base-files-console/etc/inittab  |  7 +++++++
  .../linux/mediatek/base-files-console/etc/inittab  |  3 +++
  target/linux/mxs/base-files-console/etc/inittab    |  3 +++
  target/linux/omap/base-files-console/etc/inittab   |  5 +++++
  .../linux/omap24xx/base-files-console/etc/inittab  |  5 +++++
  target/linux/ppc44x/base-files-console/etc/inittab |  4 ++++
  .../linux/realview/base-files-console/etc/inittab  |  5 +++++
  target/linux/sunxi/base-files-console/etc/inittab  |  5 +++++
  target/linux/x86/base-files-console/etc/inittab    |  4 ++++
  17 files changed, 105 insertions(+), 1 deletion(-)
  create mode 100644 target/linux/adm5120/base-files-console/etc/inittab
  create mode 100644 
target/linux/ar71xx/base-files-console/etc/uci-defaults/inittab
  create mode 100644 target/linux/brcm2708/base-files-console/etc/inittab
  create mode 100644 target/linux/ipq806x/base-files-console/etc/inittab
  create mode 100644 target/linux/lantiq/base-files-console/etc/inittab
  create mode 100644 target/linux/malta/base-files-console/etc/inittab
  create mode 100644 target/linux/mediatek/base-files-console/etc/inittab
  create mode 100644 target/linux/mxs/base-files-console/etc/inittab
  create mode 100644 target/linux/omap/base-files-console/etc/inittab
  create mode 100644 target/linux/omap24xx/base-files-console/etc/inittab
  create mode 100644 target/linux/ppc44x/base-files-console/etc/inittab
  create mode 100644 target/linux/realview/base-files-console/etc/inittab
  create mode 100644 target/linux/sunxi/base-files-console/etc/inittab
  create mode 100644 target/linux/x86/base-files-console/etc/inittab

diff --git a/config/Config-build.in b/config/Config-build.in
index 1a35c5d..f975d45 100644
--- a/config/Config-build.in
+++ b/config/Config-build.in
@@ -75,6 +75,23 @@ menu "Global build settings"
                    encrypted and unencrypted flavours, even when the 
encryption library
                    is a 'heavier' one such as OpenSSL.

+       config CONSOLE_LOGIN
+               bool
+               prompt "Require login even on hardware/serial console"
+               default y if (TARGET_x86_generic || TARGET_x86_64 || 
TARGET_brcm2708)
+               default n
+               help
+                 Enables Busybox applets getty and login and uses them instead 
of default
+                 respawn of ash on hardware/serial consoles.  This is made the 
default for
+                 targets which are fairly easy to gain hardware console access 
compared to
+                 a typical router (which generally require more electronics 
skill or at least
+                  equipment that than is common except with electronics 
enthusiasts and
+                  professionals).  This includes the Raspberry Pi/Pi2 (built 
in HDMI and USB
+                 support making adding a console trivial), and *generic* x86 
32-bit and
+                 64-bit systems (typically physical PCs for which it is also 
usually trivial
+                  to add a keyboard and monitor without even rebooting).
+
+
        comment "Kernel build options"

        source "config/Config-kernel.in"
diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index 1367fa9..b4fe806 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -112,25 +112,46 @@ define Package/base-files/install
        if [ -d $(GENERIC_PLATFORM_DIR)/base-files/. ]; then \
                $(CP) $(GENERIC_PLATFORM_DIR)/base-files/* $(1)/; \
        fi
+       $(if $(CONFIG_CONSOLE_LOGIN),if [ -d 
$(GENERIC_PLATFORM_DIR)/base-files-console/. ]; then \
+               $(CP) $(GENERIC_PLATFORM_DIR)/base-files-console/* $(1)/; \
+       fi)
        if [ -d $(PLATFORM_DIR)/base-files/. ]; then \
                $(CP) $(PLATFORM_DIR)/base-files/* $(1)/; \
        fi
+       $(if $(CONFIG_CONSOLE_LOGIN),if [ -d 
$(PLATFORM_DIR)/base-files-console/. ]; then \
+               $(CP) $(PLATFORM_DIR)/base-files-console/* $(1)/; \
+       fi)
        if [ -d $(PLATFORM_DIR)/base-files-$(PROFILE)/. ]; then \
                $(CP) $(PLATFORM_DIR)/base-files-$(PROFILE)/* $(1)/; \
        fi
+       $(if $(CONFIG_CONSOLE_LOGIN),if [ -d 
$(PLATFORM_DIR)/base-files-console-$(PROFILE)/. ]; then \
+               $(CP) $(PLATFORM_DIR)/base-files-console-$(PROFILE)/* $(1)/; \
+       fi)
        if [ -d $(PLATFORM_DIR)/$(PROFILE)/base-files/. ]; then \
                $(CP) $(PLATFORM_DIR)/$(PROFILE)/base-files/* $(1)/; \
        fi
+       $(if $(CONFIG_CONSOLE_LOGIN),if [ -d 
$(PLATFORM_DIR)/$(PROFILE)/base-files-console/. ]; then \
+               $(CP) $(PLATFORM_DIR)/$(PROFILE)/base-files-console/* $(1)/; \
+       fi)
        $(if $(filter-out $(PLATFORM_DIR),$(PLATFORM_SUBDIR)), \
                if [ -d $(PLATFORM_SUBDIR)/base-files/. ]; then \
                        $(CP) $(PLATFORM_SUBDIR)/base-files/* $(1)/; \
                fi; \
+               $(if $(CONFIG_CONSOLE_LOGIN),if [ -d 
$(PLATFORM_SUBDIR)/base-files-console/. ]; then \
+                       $(CP) $(PLATFORM_SUBDIR)/base-files-console/* $(1)/; \
+               fi;) \
                if [ -d $(PLATFORM_SUBDIR)/base-files-$(PROFILE)/. ]; then \
                        $(CP) $(PLATFORM_SUBDIR)/base-files-$(PROFILE)/* $(1)/; 
\
                fi; \
+               $(if $(CONFIG_CONSOLE_LOGIN),if [ -d 
$(PLATFORM_SUBDIR)/base-files-$(PROFILE)-console/. ]; then \
+                       $(CP) 
$(PLATFORM_SUBDIR)/base-files-console-$(PROFILE)/* $(1)/; \
+               fi;) \
                if [ -d $(PLATFORM_SUBDIR)/$(PROFILE)/base-files/. ]; then \
                        $(CP) $(PLATFORM_SUBDIR)/$(PROFILE)/base-files/* $(1)/; 
\
-               fi \
+               fi; \
+               $(if $(CONFIG_CONSOLE_LOGIN),if [ -d 
$(PLATFORM_SUBDIR)/$(PROFILE)/base-files-console/. ]; then \
+                       $(CP) 
$(PLATFORM_SUBDIR)/$(PROFILE)/base-files-console/* $(1)/; \
+               fi) \
        )

        $(VERSION_SED) \
diff --git a/package/utils/busybox/Config-defaults.in 
b/package/utils/busybox/Config-defaults.in
index 7a7b4a6..0986302 100644
--- a/package/utils/busybox/Config-defaults.in
+++ b/package/utils/busybox/Config-defaults.in
@@ -1210,12 +1210,15 @@ config BUSYBOX_DEFAULT_FEATURE_DEL_USER_FROM_GROUP
        default n
  config BUSYBOX_DEFAULT_GETTY
        bool
+       default y if CONSOLE_LOGIN
        default n
  config BUSYBOX_DEFAULT_LOGIN
        bool
+       default y if CONSOLE_LOGIN
        default n
  config BUSYBOX_DEFAULT_LOGIN_SESSION_AS_CHILD
        bool
+       default y if CONSOLE_LOGIN
        default n
  config BUSYBOX_DEFAULT_LOGIN_SCRIPTS
        bool
diff --git a/target/linux/adm5120/base-files-console/etc/inittab 
b/target/linux/adm5120/base-files-console/etc/inittab
new file mode 100644
index 0000000..fb677d6
--- /dev/null
+++ b/target/linux/adm5120/base-files-console/etc/inittab
@@ -0,0 +1,5 @@
+::sysinit:/etc/init.d/rcS S boot
+::shutdown:/etc/init.d/rcS K shutdown
+tts/0::respawn:/sbin/getty -L 115200 tts/0
+ttyAM0::respawn:/sbin/getty -L 115200 ttyAM0
+tty1::respawn:/sbin/getty -L 115200 tty1
diff --git a/target/linux/ar71xx/base-files-console/etc/uci-defaults/inittab 
b/target/linux/ar71xx/base-files-console/etc/uci-defaults/inittab
new file mode 100644
index 0000000..97a31b1
--- /dev/null
+++ b/target/linux/ar71xx/base-files-console/etc/uci-defaults/inittab
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+CONSOLE="$(sed -e 's/^.*console=\(.*\),[0-9][0-9]*.*$/\1/' /proc/cmdline)"
+SPEED="$(sed -e 's/^.*console=.*,\([0-9][0-9]*\).*$/\2/' /proc/cmdline)"
+sed -i -e "s/::askconsole:\/bin\/ash 
--login/${CONSOLE:-ttyS0}::respawn:\/sbin\/getty -L ${SPEED:-115200} 
${CONSOLE:-ttyS0}/" /etc/inittab
+
diff --git a/target/linux/brcm2708/base-files-console/etc/inittab 
b/target/linux/brcm2708/base-files-console/etc/inittab
new file mode 100644
index 0000000..4e62ec9
--- /dev/null
+++ b/target/linux/brcm2708/base-files-console/etc/inittab
@@ -0,0 +1,4 @@
+::sysinit:/etc/init.d/rcS S boot
+::shutdown:/etc/init.d/rcS K shutdown
+ttyAMA0::respawn:/sbin/getty -L 115200 ttyAMA0
+tty1::respawn:/sbin/getty -L 115200 tty1
diff --git a/target/linux/ipq806x/base-files-console/etc/inittab 
b/target/linux/ipq806x/base-files-console/etc/inittab
new file mode 100644
index 0000000..3886602
--- /dev/null
+++ b/target/linux/ipq806x/base-files-console/etc/inittab
@@ -0,0 +1,4 @@
+# Copyright (c) 2013 The Linux Foundation. All rights reserved.
+::sysinit:/etc/init.d/rcS S boot
+::shutdown:/etc/init.d/rcS K shutdown
+ttyMSM0::respawn:/sbin/getty -L 115200 ttyMSM0
diff --git a/target/linux/lantiq/base-files-console/etc/inittab 
b/target/linux/lantiq/base-files-console/etc/inittab
new file mode 100644
index 0000000..5e9d0ca
--- /dev/null
+++ b/target/linux/lantiq/base-files-console/etc/inittab
@@ -0,0 +1,3 @@
+::sysinit:/etc/init.d/rcS S boot
+::shutdown:/etc/init.d/rcS K stop
+ttyLTQ0::respawn:/sbin/getty -L 11520 ttyLTQ0
diff --git a/target/linux/malta/base-files-console/etc/inittab 
b/target/linux/malta/base-files-console/etc/inittab
new file mode 100644
index 0000000..5fb3c2f
--- /dev/null
+++ b/target/linux/malta/base-files-console/etc/inittab
@@ -0,0 +1,7 @@
+::sysinit:/etc/init.d/rcS S boot
+::shutdown:/etc/init.d/rcS K shutdown
+tts/0::respawn:/sbin/getty -L 115200 tts/0
+ttyS0::respawn:/sbin/getty -L 115200 ttyS0
+ttyS1::respawn:/sbin/getty -L 115200 ttyS1
+ttyS2::respawn:/sbin/getty -L 115200 ttyS2
+tty1::respawn:/sbin/getty -L 115200 tty1
diff --git a/target/linux/mediatek/base-files-console/etc/inittab 
b/target/linux/mediatek/base-files-console/etc/inittab
new file mode 100644
index 0000000..2f00c85
--- /dev/null
+++ b/target/linux/mediatek/base-files-console/etc/inittab
@@ -0,0 +1,3 @@
+::sysinit:/etc/init.d/rcS S boot
+::shutdown:/etc/init.d/rcS K shutdown
+ttyS0::respawn:/sbin/getty -L 115200 ttyS0
diff --git a/target/linux/mxs/base-files-console/etc/inittab 
b/target/linux/mxs/base-files-console/etc/inittab
new file mode 100644
index 0000000..f66e29c
--- /dev/null
+++ b/target/linux/mxs/base-files-console/etc/inittab
@@ -0,0 +1,3 @@
+::sysinit:/etc/init.d/rcS S boot
+::shutdown:/etc/init.d/rcS K shutdown
+ttyAMA0::respawn:/sbin/getty -L 115200 ttyAMA0
diff --git a/target/linux/omap/base-files-console/etc/inittab 
b/target/linux/omap/base-files-console/etc/inittab
new file mode 100644
index 0000000..69a7f69
--- /dev/null
+++ b/target/linux/omap/base-files-console/etc/inittab
@@ -0,0 +1,5 @@
+::sysinit:/etc/init.d/rcS S boot
+::shutdown:/etc/init.d/rcS K shutdown
+ttyO0::respawn:/sbin/getty -L 115200 ttyO0
+ttyO2::respawn:/sbin/getty -L 115200 ttyO2
+tty1::respawn:/sbin/getty -L 115200 tty1
diff --git a/target/linux/omap24xx/base-files-console/etc/inittab 
b/target/linux/omap24xx/base-files-console/etc/inittab
new file mode 100644
index 0000000..bf19849
--- /dev/null
+++ b/target/linux/omap24xx/base-files-console/etc/inittab
@@ -0,0 +1,5 @@
+::sysinit:/etc/init.d/rcS S boot
+::shutdown:/etc/init.d/rcS K shutdown
+tts/0::respawn:/sbin/getty -L 115200 tts/0
+ttyO2::respawn:/sbin/getty -L 115200 ttyO2
+tty1::respawn:/sbin/getty -L 115200 tty1
diff --git a/target/linux/ppc44x/base-files-console/etc/inittab 
b/target/linux/ppc44x/base-files-console/etc/inittab
new file mode 100644
index 0000000..23206fa
--- /dev/null
+++ b/target/linux/ppc44x/base-files-console/etc/inittab
@@ -0,0 +1,4 @@
+::sysinit:/etc/init.d/rcS S boot
+::shutdown:/etc/init.d/rcS K shutdown
+ttyS0::respawn:/sbin/getty -L 115200 ttyS0
+ttyS1::respawn:/sbin/getty -L 115200 ttyS1
diff --git a/target/linux/realview/base-files-console/etc/inittab 
b/target/linux/realview/base-files-console/etc/inittab
new file mode 100644
index 0000000..a14f90f
--- /dev/null
+++ b/target/linux/realview/base-files-console/etc/inittab
@@ -0,0 +1,5 @@
+::sysinit:/etc/init.d/rcS S boot
+::shutdown:/etc/init.d/rcS K shutdown
+tts/0::respawn:/sbin/getty -L 115200 tts/0
+ttyAMA0::respawn:/sbin/getty -L 115200 ttyAMA0
+tty1::respawn:/sbin/getty -L 115200 tty1
diff --git a/target/linux/sunxi/base-files-console/etc/inittab 
b/target/linux/sunxi/base-files-console/etc/inittab
new file mode 100644
index 0000000..b4c80de
--- /dev/null
+++ b/target/linux/sunxi/base-files-console/etc/inittab
@@ -0,0 +1,5 @@
+::sysinit:/etc/init.d/rcS S boot
+::shutdown:/etc/init.d/rcS K shutdown
+tts/0::respawn:/sbin/getty -L 115200 tts/0
+ttyS0::respawn:/sbin/getty -L 115200 ttyS0
+tty1::respawn:/sbin/getty -L 115200 tty1
diff --git a/target/linux/x86/base-files-console/etc/inittab 
b/target/linux/x86/base-files-console/etc/inittab
new file mode 100644
index 0000000..060cd53
--- /dev/null
+++ b/target/linux/x86/base-files-console/etc/inittab
@@ -0,0 +1,4 @@
+::sysinit:/etc/init.d/rcS S boot
+::shutdown:/etc/init.d/rcS K shutdown
+ttyS0::respawn:/sbin/getty -L 115200 ttyS0
+tty1::respawn:/sbin/getty -L 115200 tty1

_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to