telnet 847 B

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