diff options
Diffstat (limited to 'package/dropbear')
-rw-r--r-- | package/dropbear/S50dropbear | 14 | ||||
-rw-r--r-- | package/dropbear/dropbear.mk | 2 | ||||
-rw-r--r-- | package/dropbear/dropbear.service | 8 |
3 files changed, 14 insertions, 10 deletions
diff --git a/package/dropbear/S50dropbear b/package/dropbear/S50dropbear index 8938789509..b4e3c5c685 100644 --- a/package/dropbear/S50dropbear +++ b/package/dropbear/S50dropbear @@ -9,24 +9,26 @@ test -r /etc/default/dropbear && . /etc/default/dropbear start() { DROPBEAR_ARGS="$DROPBEAR_ARGS -R" - echo -n "Starting dropbear sshd: " - umask 077 - # If /etc/dropbear is a symlink to /var/run/dropbear, 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 [ -L /etc/dropbear \ - -a "$(readlink -f /etc/dropbear)" = "/var/run/dropbear" ] + -a "$(readlink /etc/dropbear)" = "/var/run/dropbear" ] then - if rm -f /etc/dropbear; then + if rm -f /etc/dropbear >/dev/null 2>&1; then mkdir -p /etc/dropbear else - mkdir -p $(readlink /etc/dropbear) + echo "No persistent location to store SSH host keys. New keys will be" + echo "generated at each boot. Are you sure this is what you want to do?" + mkdir -p "$(readlink /etc/dropbear)" fi fi + echo -n "Starting dropbear sshd: " + umask 077 + start-stop-daemon -S -q -p /var/run/dropbear.pid \ --exec /usr/sbin/dropbear -- $DROPBEAR_ARGS [ $? = 0 ] && echo "OK" || echo "FAIL" diff --git a/package/dropbear/dropbear.mk b/package/dropbear/dropbear.mk index 5bbe864500..aa3fd9d928 100644 --- a/package/dropbear/dropbear.mk +++ b/package/dropbear/dropbear.mk @@ -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 - ln -snf ../var/run/dropbear $(TARGET_DIR)/etc/dropbear + ln -snf /var/run/dropbear $(TARGET_DIR)/etc/dropbear endef $(eval $(autotools-package)) diff --git a/package/dropbear/dropbear.service b/package/dropbear/dropbear.service index 52c77024f5..1eb42f9d09 100644 --- a/package/dropbear/dropbear.service +++ b/package/dropbear/dropbear.service @@ -10,11 +10,13 @@ After=syslog.target network.target auditd.service # replace the symlink with an actual directory ExecStartPre=/bin/sh -c '\ if [ -L /etc/dropbear \ - -a "$(readlink -f /etc/dropbear)" = "/var/run/dropbear" ]; then \ - if rm -f /etc/dropbear; then \ + -a "$(readlink /etc/dropbear)" = "/var/run/dropbear" ]; then \ + if rm -f /etc/dropbear >/dev/null 2>&1; then \ mkdir -p /etc/dropbear; \ else \ - mkdir -p $(readlink /etc/dropbear); \ + echo "No persistent location to store SSH host keys. New keys will be"; \ + echo "generated at each boot. Are you sure this is what you want to do?"; \ + mkdir -p "$(readlink /etc/dropbear)"; \ fi; \ fi' ExecStart=/usr/sbin/dropbear -F -R |