From: Romain Naour Date: Fri, 19 Jan 2018 10:15:04 +0000 (+0100) Subject: package/screen: add /usr/bin/screen to /etc/shells X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d19ed2fe4c52cbc2e618af6d3a168e5669231453;p=buildroot.git package/screen: add /usr/bin/screen to /etc/shells When screen is selected, /usr/bin/screen is not added to /etc/shells (see man shells). So, login tools like dropbear reject the ssh connections for users using screen as shell in /etc/passwd. buildroot authpriv.warn dropbear[853]: User 'kubu' has invalid shell, rejected While at it, drop an empty line between an existing hook definition and its registration, to be consistent with the coding style used in the rest of Buildroot. Signed-off-by: Romain Naour Reviewed-by: "Yann E. MORIN" Signed-off-by: Thomas Petazzoni --- diff --git a/package/screen/screen.mk b/package/screen/screen.mk index 8d67c04b63..37d43366c2 100644 --- a/package/screen/screen.mk +++ b/package/screen/screen.mk @@ -17,7 +17,14 @@ SCREEN_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) SCREEN=screen install_bin define SCREEN_INSTALL_SCREENRC $(INSTALL) -m 0755 -D $(@D)/etc/screenrc $(TARGET_DIR)/etc/screenrc endef - SCREEN_POST_INSTALL_TARGET_HOOKS += SCREEN_INSTALL_SCREENRC +# Add /usr/bin/screen to /etc/shells otherwise some login tools like dropbear +# can reject the user connection. See man shells. +define SCREEN_ADD_SCREEN_TO_SHELLS + grep -qsE '^/usr/bin/screen$$' $(TARGET_DIR)/etc/shells \ + || echo "/usr/bin/screen" >> $(TARGET_DIR)/etc/shells +endef +SCREEN_TARGET_FINALIZE_HOOKS += SCREEN_ADD_SCREEN_TO_SHELLS + $(eval $(autotools-package))