package/skeleton-init-common: add /bin/sh to /etc/shells
authorRomain Naour <romain.naour@smile.fr>
Fri, 19 Jan 2018 10:15:01 +0000 (11:15 +0100)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Thu, 3 May 2018 21:12:19 +0000 (23:12 +0200)
Add the default shell /bin/sh to /etc/shells only if BR2_SYSTEM_BIN_SH_NONE
is not selected.

Signed-off-by: Romain Naour <romain.naour@smile.fr>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>o
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
package/skeleton-init-common/skeleton-init-common.mk

index 8228a8103f69bc16bb51cf5e4167d4066bc0310b..e8a0522052689ae4bed263b021233099eb1ef4ab 100644 (file)
@@ -79,6 +79,13 @@ define SKELETON_INIT_COMMON_SET_BIN_SH
        rm -f $(TARGET_DIR)/bin/sh
 endef
 else
+# Add /bin/sh to /etc/shells otherwise some login tools like dropbear
+# can reject the user connection. See man shells.
+define SKELETON_INIT_COMMON_ADD_SH_TO_SHELLS
+       grep -qsE '^/bin/sh$$' $(TARGET_DIR)/etc/shells \
+               || echo "/bin/sh" >> $(TARGET_DIR)/etc/shells
+endef
+SKELETON_INIT_COMMON_TARGET_FINALIZE_HOOKS += SKELETON_INIT_COMMON_ADD_SH_TO_SHELLS
 ifneq ($(SKELETON_INIT_COMMON_BIN_SH),)
 define SKELETON_INIT_COMMON_SET_BIN_SH
        ln -sf $(SKELETON_INIT_COMMON_BIN_SH) $(TARGET_DIR)/bin/sh