package/dropbear: fix generatign keys on RO file systems
PATCH 1/1 package/dropbear: fix generatign keys on RO file systems
dropbear generates its keys at the first connection, and wants to save them in /etc/dropbear (not configurable).
Currently, our /etc/dropbear is a directory.
When the filesystem is read-only, dropbear can't save its keys, so refuses all connections.
Fix that with:
- at build time, create /etc/dropbear as a symlink to /var/run/dropbear
- at runtime, if the filesystem is RW (we can rm /etc/dropbear), we replace the symlink with an actual directory; otherwise, when the filesystem is RO (we can't rm /etc/dropbear), we create /var/run/dropbear so the symlink points to an existing directory
--- package/dropbear/S50dropbear | 14 ++++++++++++++ package/dropbear/dropbear.mk | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-)
package/dropbear/S50dropbear +14 -0
@@ -11,6 +11,20 @@ start() { echo -n "Starting dropbear sshd: " umask 077 + + # If /etc/dropbear is not a directory, and + # - the filesystem is RO (i.e. we can not rm the symlink), + # create the directory pointed to by the symlink. + # - the filesystem is RW (i.e. we can rm the symlink), + # replace the symlink with an actual directory + if ! [ -d /etc/dropbear ]; then + if ! rm -f /etc/dropbear; then + mkdir -p /etc/dropbear + else + mkdir -p $(readlink -f /etc/dropbear) + fi + fi + start-stop-daemon -S -q -p /var/run/dropbear.pid \ --exec /usr/sbin/dropbear -- $DROPBEAR_ARGS [ $? = 0 ] && echo "OK" || echo "FAIL"
package/dropbear/dropbear.mk +1 -1
@@ -93,7 +93,7 @@ define DROPBEAR_INSTALL_TARGET_CMDS for f in $(DROPBEAR_TARGET_BINS); do \ ln -snf ../sbin/dropbear $(TARGET_DIR)/usr/bin/$$f ; \ done - mkdir -p $(TARGET_DIR)/etc/dropbear + ln -snf ../var/run/dropbear $(TARGET_DIR)/etc/dropbear endef $(eval $(autotools-package))
Signature · 1 line
1.9.1
PATCH 1/1 package/dropbear: fix generatign keys on RO file systems
Hi Yann, all
Quoted 42 lines · Yann E. MORIN
dropbear generates its keys at the first connection, and wants to save them in
/etc/dropbear(not configurable).Currently, our
/etc/dropbearis a directory.When the filesystem is read-only, dropbear can't save its keys, so refuses all connections.
Fix that with:
- at build time, create
/etc/dropbearas a symlink to/var/run/dropbear- at runtime, if the filesystem is RW (we can rm
/etc/dropbear), we replace the symlink with an actual directory; otherwise, when the filesystem is RO (we can't rm/etc/dropbear), we create/var/run/dropbearso the symlink points to an existing directorySigned-off-by "Yann E. MORIN" <[email protected]>Cc Thomas Petazzoni <[email protected]>Cc Arnout Vandecappelle <[email protected]>Cc Maxime Hadjinlian <[email protected]>--- package/dropbear/S50dropbear | 14 ++++++++++++++ package/dropbear/dropbear.mk | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-)package/dropbear/S50dropbear +7
-0@@ -11,6 +11,20 @@ start() { echo -n "Starting dropbear sshd: " umask 077 + + # If /etc/dropbear is not a directory, and + # - the filesystem is RO (i.e. we can not rm the symlink), + # create the directory pointed to by the symlink. + # - the filesystem is RW (i.e. we can rm the symlink), + # replace the symlink with an actual directory + if ! [ -d /etc/dropbear ]; then
package/dropbear/S50dropbear start() { · line 30
Quoted 10 lines
package/dropbear/S50dropbear +7
-0+ if ! rm -f /etc/dropbear; then + mkdir -p /etc/dropbear + else + mkdir -p $(readlink -f /etc/dropbear) + fi + fi + start-stop-daemon -S -q -p /var/run/dropbear.pid \ --exec /usr/sbin/dropbear -- $DROPBEAR_ARGS [ $? = 0 ] && echo "OK" || echo "FAIL"
So systemd users are left behind ? :(
Quoted 16 lines
package/dropbear/dropbear.mk +1
-2@@ -93,7 +93,7 @@ define DROPBEAR_INSTALL_TARGET_CMDS for f in $(DROPBEAR_TARGET_BINS); do \ ln -snf ../sbin/dropbear $(TARGET_DIR)/usr/bin/$$f ; \ done - mkdir -p $(TARGET_DIR)/etc/dropbear + ln -snf ../var/run/dropbear $(TARGET_DIR)/etc/dropbear endef $(eval $(autotools-package)) --1.9.1
PATCH 1/1 package/dropbear: fix generatign keys on RO file systems
In reply to Yann E. MORINHi Yann,
package/dropbear/S50dropbear start() { · line 21
Quoted 2 lines · Yann E. MORIN
package/dropbear/S50dropbear +2
-0+ if ! [ -d /etc/dropbear ]; then + if ! rm -f /etc/dropbear; then
'rm -f' always succeeds.
package/dropbear/S50dropbear start() { · line 26
Quoted 5 lines
package/dropbear/S50dropbear +5
-0+ mkdir -p /etc/dropbear + else + mkdir -p $(readlink -f /etc/dropbear) + fi + fi
baruch
Signature · 3 lines
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -PATCH 1/1 package/dropbear: fix generatign keys on RO file systems
Baruch, All,
On 2015-07-13 18:01 +0300, Baruch Siach spake thusly:
Quoted 5 lines · Yann E. MORIN
package/dropbear/S50dropbear start() { · line 21
Quoted 2 lines
package/dropbear/S50dropbear +2
-0+ if ! [ -d /etc/dropbear ]; then + if ! rm -f /etc/dropbear; then'rm -f' always succeeds.
No, it does not succeeds if the filesystem is readonly.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | 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. | '------------------------------^-------^------------------^--------------------'