All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 2/7] package/busybox: add /bin/ash to /etc/shells
Date: Sun, 14 Jan 2018 23:43:50 +0100	[thread overview]
Message-ID: <20180114224350.GI16760@scaer> (raw)
In-Reply-To: <1515963815-5843-3-git-send-email-romain.naour@smile.fr>

Romain, All,

On 2018-01-14 22:03 +0100, Romain Naour spake thusly:
> When ash (busybox) is selected, /bin/ash is not added to /etc/shells
> (see man shells). So, login tools like dropbear reject the ssh
> connexions for users using ash as shell in /etc/passwd.
> 
> buildroot authpriv.warn dropbear[853]: User 'kubu' has invalid shell, rejected
> 
> ash is disabled for MMUless systems, so don't add /bin/ash in
> /etc/shells in this case.
> 
> Signed-off-by: Romain Naour <romain.naour@smile.fr>
> ---
>  package/busybox/busybox.mk | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/package/busybox/busybox.mk b/package/busybox/busybox.mk
> index d0bbd3f..37d064a 100644
> --- a/package/busybox/busybox.mk
> +++ b/package/busybox/busybox.mk
> @@ -258,6 +258,15 @@ define BUSYBOX_INSTALL_TELNET_SCRIPT
>  	fi
>  endef
>  
> +# Add /bin/ash to /etc/shells otherwise some login tools like dropbear
> +# can reject the user connexion. See man shells.
> +ifeq ($(BR2_USE_MMU),y)
> +define BUSYBOX_INSTALL_ADD_ASH_TO_SHELLS
> +	grep -qsE '^/bin/ash' $(TARGET_DIR)/etc/shells \
> +		|| echo "/bin/ash" >> $(TARGET_DIR)/etc/shells

What if the user uses a custom config file where ash is not enabled?
What about the other shells busybox may install?

    define BUSYBOX_INSTALL_ADD_TO_SHELLS
        if grep -qsE '^CONFIG_ASH=y$$' $(@D)/.config; then
            grep -qsE '^/bin/ash' $(TARGET_DIR)/etc/shells \
            || echo "/bin/ash" >> $(TARGET_DIR)/etc/shells; \
        fi
        if grep -qsE '^CONFIG_HUSH=y$$' $(@D)/.config; then
            grep -qsE '^/bin/hush' $(TARGET_DIR)/etc/shells \
            || echo "/bin/hush" >> $(TARGET_DIR)/etc/shells; \
        fi
        if grep -qsE '^CONFIG_MSH=y$$' $(@D)/.config; then
            grep -qsE '^/bin/msh' $(TARGET_DIR)/etc/shells \
            || echo "/bin/msh" >> $(TARGET_DIR)/etc/shells; \
        fi
    endef

(msh is just an alias for hush, but it can be a shell nonethless...)

Regards,
Yann E. MORIN.

> +endef
> +endif
> +
>  # 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
> @@ -291,6 +300,7 @@ define BUSYBOX_INSTALL_TARGET_CMDS
>  	$(BUSYBOX_INSTALL_INITTAB)
>  	$(BUSYBOX_INSTALL_UDHCPC_SCRIPT)
>  	$(BUSYBOX_INSTALL_MDEV_CONF)
> +	$(BUSYBOX_INSTALL_ADD_ASH_TO_SHELLS)
>  endef
>  
>  define BUSYBOX_INSTALL_INIT_SYSV
> -- 
> 2.7.4
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

  reply	other threads:[~2018-01-14 22:43 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-14 21:03 [Buildroot] [PATCH 0/7] Add /etc/shells handling Romain Naour
2018-01-14 21:03 ` [Buildroot] [PATCH 1/7] package/skeleton-init-common: add /bin/sh to /etc/shells Romain Naour
2018-01-14 22:51   ` Yann E. MORIN
2018-01-15 14:41   ` Peter Korsgaard
2018-01-15 17:06     ` Yann E. MORIN
2018-01-14 21:03 ` [Buildroot] [PATCH 2/7] package/busybox: add /bin/ash " Romain Naour
2018-01-14 22:43   ` Yann E. MORIN [this message]
2018-01-17 15:17     ` Romain Naour
2018-01-14 21:03 ` [Buildroot] [PATCH 3/7] package/dash: add /etc/dash " Romain Naour
2018-01-14 22:26   ` Yann E. MORIN
2018-01-14 21:03 ` [Buildroot] [PATCH 4/7] package/screen: add /usr/bin/screen " Romain Naour
2018-01-14 22:29   ` Yann E. MORIN
2018-01-14 22:36     ` Yann E. MORIN
2018-01-14 21:03 ` [Buildroot] [PATCH 5/7] package/tmux: add /usr/bin/tmux " Romain Naour
2018-01-14 22:30   ` Yann E. MORIN
2018-01-14 21:03 ` [Buildroot] [PATCH 6/7] package/zsh: add /bin/zsh " Romain Naour
2018-01-14 22:34   ` Yann E. MORIN
2018-01-14 21:03 ` [Buildroot] [PATCH 7/7] package/mksh: add /bin/mksh " Romain Naour
2018-01-14 22:37   ` Yann E. MORIN
2018-01-15 10:35     ` Thomas Petazzoni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180114224350.GI16760@scaer \
    --to=yann.morin.1998@free.fr \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.