Root/package/busybox/files/telnet

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

Archive Download this file



interactive