diff options
Diffstat (limited to 'packages/busybox')
-rw-r--r-- | packages/busybox/busybox-1.9.1/defconfig | 2 | ||||
-rw-r--r-- | packages/busybox/files/50telnet | 16 | ||||
-rw-r--r-- | packages/busybox/files/login.failsafe | 19 |
3 files changed, 36 insertions, 1 deletions
diff --git a/packages/busybox/busybox-1.9.1/defconfig b/packages/busybox/busybox-1.9.1/defconfig index 770ef6eb12..33d30911da 100644 --- a/packages/busybox/busybox-1.9.1/defconfig +++ b/packages/busybox/busybox-1.9.1/defconfig @@ -633,7 +633,7 @@ CONFIG_ROUTE=y CONFIG_TELNET=y # CONFIG_FEATURE_TELNET_TTYPE is not set CONFIG_FEATURE_TELNET_AUTOLOGIN=y -# CONFIG_TELNETD is not set +CONFIG_TELNETD=y # CONFIG_FEATURE_TELNETD_STANDALONE is not set CONFIG_TFTP=y CONFIG_FEATURE_TFTP_GET=y diff --git a/packages/busybox/files/50telnet b/packages/busybox/files/50telnet new file mode 100644 index 0000000000..3fb4a90494 --- /dev/null +++ b/packages/busybox/files/50telnet @@ -0,0 +1,16 @@ +#!/bin/sh +# Copyright (C) 2006 OpenWrt.org +# Copyright (C) 2008 Koen Kooi + +# This starts telnetd if the password for 'root' is empty. This is needed for devices without a screen or serial console (wifi router, NAS, etc). + +start() { + if awk -F: '/^root:/ && ($2 != "") && ($2 !~ /\!/) {exit 1}' /etc/passwd 2>/dev/null + then + telnetd -l /bin/login.failsafe + fi +} + +stop() { + killall telnetd +} diff --git a/packages/busybox/files/login.failsafe b/packages/busybox/files/login.failsafe new file mode 100644 index 0000000000..e7c12a27fb --- /dev/null +++ b/packages/busybox/files/login.failsafe @@ -0,0 +1,19 @@ +#!/bin/sh +# Copyright (C) 2006 OpenWrt.org +# Copyright (C) 2008 Koen Kooi + +grep '^root:[^!]' /etc/passwd >&- 2>&- +[ "$?" = "0" ] && +{ + echo "Login failed." + exit 0 +} || { +cat << EOF + === IMPORTANT ============================ + Use 'passwd' to set your login password + this will disable telnet and enable SSH + ------------------------------------------ +EOF +} + +exec /bin/sh --login |