kumquat-buildroot/package/dropbear/S50dropbear
Paul Cercueil 6dc5c7ffea package/dropbear: Fix symlink only if pointing to the right directory
This commit ensures that the /etc/dropbear symlink won't be removed if
it points elsewhere than /var/run/dropbear.

[Thomas:
 - fix indentation / too long lines as suggested by Yann E. Morin.]

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-07-30 23:36:02 +02:00

60 lines
1.2 KiB
Bash

#!/bin/sh
#
# Starts dropbear sshd.
#
# Allow a few customizations from a config file
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" ]
then
if rm -f /etc/dropbear; then
mkdir -p /etc/dropbear
else
mkdir -p $(readlink /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"
}
stop() {
echo -n "Stopping dropbear sshd: "
start-stop-daemon -K -q -p /var/run/dropbear.pid
[ $? = 0 ] && echo "OK" || echo "FAIL"
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
restart
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit $?