From 854e3dd1a0ce1902230118f3abd90a0113d171cd Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Fri, 19 Jan 2018 11:15:02 +0100 Subject: [PATCH] package/busybox: add /bin/{a, hu}sh to /etc/shells When ash (busybox) is selected, /bin/{a,hu}sh is not added to /etc/shells (see man shells). So, login tools like dropbear reject the ssh connections for users using {a,hu}sh as shell in /etc/passwd. buildroot authpriv.warn dropbear[853]: User 'kubu' has invalid shell, rejected Signed-off-by: Romain Naour Reviewed-by: "Yann E. MORIN" Signed-off-by: Thomas Petazzoni --- package/busybox/busybox.mk | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/package/busybox/busybox.mk b/package/busybox/busybox.mk index fd4ac600c2..60a55a2c78 100644 --- a/package/busybox/busybox.mk +++ b/package/busybox/busybox.mk @@ -262,6 +262,20 @@ define BUSYBOX_INSTALL_TELNET_SCRIPT fi endef +# Add /bin/{a,hu}sh to /etc/shells otherwise some login tools like dropbear +# can reject the user connection. See man shells. +define BUSYBOX_INSTALL_ADD_TO_SHELLS + if grep -q CONFIG_ASH=y $(@D)/.config; then \ + grep -qsE '^/bin/ash$$' $(TARGET_DIR)/etc/shells \ + || echo "/bin/ash" >> $(TARGET_DIR)/etc/shells; \ + fi + if grep -q CONFIG_HUSH=y $(@D)/.config; then \ + grep -qsE '^/bin/hush$$' $(TARGET_DIR)/etc/shells \ + || echo "/bin/hush" >> $(TARGET_DIR)/etc/shells; \ + fi +endef +BUSYBOX_TARGET_FINALIZE_HOOKS += BUSYBOX_INSTALL_ADD_TO_SHELLS + # Enable "noclobber" in install.sh, to prevent BusyBox from overwriting any # full-blown versions of apps installed by other packages with sym/hard links. define BUSYBOX_NOCLOBBER_INSTALL -- 2.30.2