shadow.inc: Append serial devices mentioned in SERIAL_CONSOLE into /etc/securetty
authorKhem Raj <raj.khem@gmail.com>
Wed, 26 May 2010 11:00:49 +0000 (04:00 -0700)
committerKhem Raj <raj.khem@gmail.com>
Wed, 26 May 2010 16:55:38 +0000 (09:55 -0700)
* Some serial dev nodes are not part of /etc/securetty. So either
  we can add them manually or deduce from SERIAL_CONSOLE. this does
  the later. Tested on qemuarm which used ttyAMA0 for console and it
  not listed in the securetty list. This authorizes root login on
  the give named console.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Acked-by: Chris Larson <clarson@kergoth.com>
recipes/shadow/shadow.inc

index 30bd92f..460930b 100644 (file)
@@ -11,7 +11,9 @@ LICENSE = "BSD"
 SECTION = "base"
 DEPENDS += "${@base_contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
 
-INC_PR = "r13"
+PACKAGE_ARCH_${PN} = "${MACHINE_ARCH}"
+
+INC_PR = "r14"
 
 # Additional Policy files for PAM
 PAM_SRC_URI = " \
@@ -90,8 +92,15 @@ do_install_append() {
   mv ${D}${bindir}/login ${D}${base_bindir}/login.${PN}
 
   # Ensure we add a suitable securetty file to the package that has most common embedded TTYs defined.
+  if [ ! -z "${SERIAL_CONSOLE}" ]; then
+  # our SERIAL_CONSOLE contains baud rate too and sometime -L option as well.
+  # the following pearl :) takes that and converts it into newline sepated tty's and appends
+  # them into securetty. So if a machine has a weird looking console device node (e.g. ttyAMA0) that securetty
+  # does not know then it will get appended to securetty and root login will be allowed on
+  # that console.
+    echo "${SERIAL_CONSOLE}" | sed -e 's/[0-9][0-9]\|\-L//g'|tr "[ ]" "[\n]"  >> ${WORKDIR}/securetty
+  fi
   install -m 0400 ${WORKDIR}/securetty ${D}${sysconfdir}/securetty 
-
 }
 
 pkg_postinst_${PN} () {