Disable telnet in favor of passwordless SSH
This enables passworldless login for root via SSH whenever no root password is set (e.g. after reset, flashing without keeping config or in failsafe) and removes telnet support alltogether. Signed-off-by: Steven Barth <steven@midlink.org> SVN-Revision: 46809
This commit is contained in:
@@ -1,38 +0,0 @@
|
||||
#!/bin/sh /etc/rc.common
|
||||
# Copyright (C) 2006-2011 OpenWrt.org
|
||||
|
||||
START=50
|
||||
|
||||
USE_PROCD=1
|
||||
PROG=/usr/sbin/telnetd
|
||||
|
||||
has_root_pwd() {
|
||||
local pwd=$([ -f "$1" ] && cat "$1")
|
||||
pwd="${pwd#*root:}"
|
||||
pwd="${pwd%%:*}"
|
||||
|
||||
test -n "${pwd#[\!x]}"
|
||||
}
|
||||
|
||||
get_root_home() {
|
||||
local homedir=$([ -f "$1" ] && cat "$1")
|
||||
homedir="${homedir#*:*:0:0:*:}"
|
||||
|
||||
echo "${homedir%%:*}"
|
||||
}
|
||||
|
||||
has_ssh_pubkey() {
|
||||
( /etc/init.d/dropbear enabled 2> /dev/null && grep -qs "^ssh-" /etc/dropbear/authorized_keys ) || \
|
||||
( /etc/init.d/sshd enabled 2> /dev/null && grep -qs "^ssh-" "$(get_root_home /etc/passwd)"/.ssh/authorized_keys )
|
||||
}
|
||||
|
||||
start_service() {
|
||||
if ( ! has_ssh_pubkey && \
|
||||
! has_root_pwd /etc/passwd && ! has_root_pwd /etc/shadow ) || \
|
||||
( ! /etc/init.d/dropbear enabled 2> /dev/null && ! /etc/init.d/sshd enabled 2> /dev/null );
|
||||
then
|
||||
procd_open_instance
|
||||
procd_set_param command "$PROG" -F -l /bin/login.sh
|
||||
procd_close_instance
|
||||
fi
|
||||
}
|
||||
Reference in New Issue
Block a user