Add new menu "Install permanent SSH"
							parent
							
								
									82ab90b39e
								
							
						
					
					
						commit
						82a40aa2b3
					
				@ -0,0 +1,16 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
if [ "$( grep 'ssh_patch.sh' /etc/crontabs/root )" != "" ]; then
 | 
			
		||||
	sh /tmp/ssh_uninstall.sh
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
mv -f /tmp/ssh_patch.sh /etc/crontabs/
 | 
			
		||||
chmod +x /etc/crontabs/ssh_patch.sh
 | 
			
		||||
 | 
			
		||||
nvram set ssh_en=1
 | 
			
		||||
nvram commit
 | 
			
		||||
 | 
			
		||||
grep -v "/etc/crontabs/ssh_patch.sh" /etc/crontabs/root > /etc/crontabs/root.new; 
 | 
			
		||||
echo "*/1 * * * * /etc/crontabs/ssh_patch.sh >/dev/null 2>&1" >> /etc/crontabs/root.new
 | 
			
		||||
mv /etc/crontabs/root.new /etc/crontabs/root
 | 
			
		||||
/etc/init.d/cron restart
 | 
			
		||||
@ -0,0 +1,15 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
[ -e "/tmp/ssh_patch.log" ] && return 0
 | 
			
		||||
 | 
			
		||||
HAVE_PATCH=$( grep '= "release"' /etc/init.d/dropbear )
 | 
			
		||||
if [ -z "$HAVE_PATCH" ]; then
 | 
			
		||||
	return 0
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
sed -i 's/= "release"/= "XXXXXX"/g' /etc/init.d/dropbear
 | 
			
		||||
 | 
			
		||||
/etc/init.d/dropbear enable
 | 
			
		||||
/etc/init.d/dropbear restart
 | 
			
		||||
 | 
			
		||||
echo "ssh enabled" > /tmp/ssh_patch.log
 | 
			
		||||
@ -0,0 +1,8 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
grep -v "/etc/crontabs/ssh_patch.sh" /etc/crontabs/root > /etc/crontabs/root.new; 
 | 
			
		||||
mv /etc/crontabs/root.new /etc/crontabs/root
 | 
			
		||||
/etc/init.d/cron restart
 | 
			
		||||
 | 
			
		||||
rm -f /etc/crontabs/ssh_patch.sh
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,53 @@
 | 
			
		||||
#!/usr/bin/env python3
 | 
			
		||||
# -*- coding: utf-8 -*-
 | 
			
		||||
 | 
			
		||||
import os
 | 
			
		||||
import sys
 | 
			
		||||
 | 
			
		||||
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
 | 
			
		||||
import gateway
 | 
			
		||||
from gateway import die
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
gw = gateway.Gateway()
 | 
			
		||||
 | 
			
		||||
fn_dir      = 'data/'
 | 
			
		||||
fn_local    = 'data/ssh_patch.sh'
 | 
			
		||||
fn_remote   = '/tmp/ssh_patch.sh'
 | 
			
		||||
fn_local_i  = 'data/ssh_install.sh'
 | 
			
		||||
fn_remote_i = '/tmp/ssh_install.sh'
 | 
			
		||||
fn_local_u  = 'data/ssh_uninstall.sh'
 | 
			
		||||
fn_remote_u = '/tmp/ssh_uninstall.sh'
 | 
			
		||||
 | 
			
		||||
action = 'install'
 | 
			
		||||
if len(sys.argv) > 1:
 | 
			
		||||
  if sys.argv[1].startswith('u') or sys.argv[1].startswith('r'):
 | 
			
		||||
    action = 'uninstall'
 | 
			
		||||
 | 
			
		||||
if action == 'install':
 | 
			
		||||
  gw.upload(fn_local, fn_remote)
 | 
			
		||||
  gw.upload(fn_local_i, fn_remote_i)
 | 
			
		||||
 | 
			
		||||
gw.upload(fn_local_u, fn_remote_u)
 | 
			
		||||
 | 
			
		||||
print("All files uploaded!")
 | 
			
		||||
'''
 | 
			
		||||
if action == 'install':
 | 
			
		||||
  gw.ssh_close()
 | 
			
		||||
  import passw
 | 
			
		||||
  gw = gateway.Gateway()
 | 
			
		||||
  if not gw.ping():
 | 
			
		||||
    die('SSH not active!')
 | 
			
		||||
'''
 | 
			
		||||
 | 
			
		||||
print("Run scripts...")
 | 
			
		||||
if action == 'install':
 | 
			
		||||
  gw.run_cmd("sh " + fn_remote_i)
 | 
			
		||||
else:
 | 
			
		||||
  gw.run_cmd("sh " + fn_remote_u)
 | 
			
		||||
 | 
			
		||||
gw.run_cmd("rm -f " + fn_remote)
 | 
			
		||||
gw.run_cmd("rm -f " + fn_remote_i)
 | 
			
		||||
gw.run_cmd("rm -f " + fn_remote_u)
 | 
			
		||||
 | 
			
		||||
print("Ready! The SSH patch installed.")
 | 
			
		||||
					Loading…
					
					
				
		Reference in New Issue