mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-27 12:04:28 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			39 lines
		
	
	
		
			952 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			952 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh /etc/rc.common
 | |
| # Copyright (C) 2006-2011 OpenWrt.org
 | |
| 
 | |
| START=50
 | |
| USE_PROCD=1
 | |
| PROG=/usr/sbin/telnetd
 | |
| NAME=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
 | |
| }
 |