busybox: fix validation in sysntpd init script
[openwrt/staging/lynxis/omap.git] / package / utils / busybox / files / telnet
1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2006-2011 OpenWrt.org
3
4 START=50
5
6 USE_PROCD=1
7 PROG=/usr/sbin/telnetd
8
9 has_root_pwd() {
10 local pwd=$([ -f "$1" ] && cat "$1")
11 pwd="${pwd#*root:}"
12 pwd="${pwd%%:*}"
13
14 test -n "${pwd#[\!x]}"
15 }
16
17 get_root_home() {
18 local homedir=$([ -f "$1" ] && cat "$1")
19 homedir="${homedir#*:*:0:0:*:}"
20
21 echo "${homedir%%:*}"
22 }
23
24 has_ssh_pubkey() {
25 ( /etc/init.d/dropbear enabled 2> /dev/null && grep -qs "^ssh-" /etc/dropbear/authorized_keys ) || \
26 ( /etc/init.d/sshd enabled 2> /dev/null && grep -qs "^ssh-" "$(get_root_home /etc/passwd)"/.ssh/authorized_keys )
27 }
28
29 start_service() {
30 if ( ! has_ssh_pubkey && \
31 ! has_root_pwd /etc/passwd && ! has_root_pwd /etc/shadow ) || \
32 ( ! /etc/init.d/dropbear enabled 2> /dev/null && ! /etc/init.d/sshd enabled 2> /dev/null );
33 then
34 procd_open_instance
35 procd_set_param command "$PROG" -F -l /bin/login.sh
36 procd_close_instance
37 fi
38 }