wok diff shellinabox/stuff/shellinabox @ rev 25055
linux: disable Realtek RTL8723AU Wireless LAN NIC driver
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Mon Jun 06 09:43:10 2022 +0000 (2022-06-06) |
parents | |
children |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/shellinabox/stuff/shellinabox Mon Jun 06 09:43:10 2022 +0000 1.3 @@ -0,0 +1,103 @@ 1.4 +#!/bin/sh 1.5 + 1.6 +services="/" 1.7 + 1.8 +mkexe() 1.9 +{ 1.10 +exe=$0 1.11 +while true; do 1.12 + cd $(dirname $exe) 1.13 + exe=$(basename $exe) 1.14 + [ -L $exe ] || break 1.15 + exe=$(readlink $exe) 1.16 +done 1.17 +echo $(pwd)/$exe 1.18 +} 1.19 +exe=$(mkexe) 1.20 + 1.21 +services_arg() 1.22 +{ 1.23 +for i in $services ; do 1.24 + echo -n "-s '$i:root:root:/tmp:LINES=25 /bin/sh -c \"$exe service $i " 1.25 + echo -n "\${peer} \${url} \${columns} \${lines}\"' " 1.26 +done 1.27 +} 1.28 + 1.29 +launch_ssh() 1.30 +{ 1.31 + server="" 1.32 + sequence="" 1.33 + for i in $(echo "$2" | sed 's/[?&,]/ /g'); do 1.34 + case "$i" in 1.35 + host=*) server=${i#host=};; 1.36 + knock=*) sequence=${i#knock=};; 1.37 + esac 1.38 + done 1.39 + if [ -z "$server" ]; then 1.40 + # Get SSH server 1.41 + echo "Expected format [!][telnet/][user@][host][:port], default local login." 1.42 + echo -n "TELNET/SSH server: " 1.43 + read -t 300 server 1.44 + fi 1.45 + [ -n "$server" ] || exec /bin/login 1.46 + 1.47 + # Allow non default SSH port with format server:port 1.48 + port="" 1.49 + sshport="" 1.50 + case "$server" in 1.51 + *:*) port="${server#*:}" 1.52 + sshport="-p $port" 1.53 + server=${server%:*};; 1.54 + esac 1.55 + 1.56 + # heading ! in server name means open remote ssh port with a knock sequence 1.57 + if which knock > /dev/null; then 1.58 + case "$server" in 1.59 + !*) server=${server#*!} 1.60 + if [ -z "$sequence" ]; then 1.61 + echo -n "Knock sequence (port[:proto]...): " 1.62 + read -t 30 sequence && 1.63 + knock ${server#*@} ${sequence//-/ } 1.64 + else 1.65 + knock ${server#*@} ${sequence//-/ } 1.66 + fi 1.67 + esac 1.68 + fi 1.69 + 1.70 + # Get SSH user if missing 1.71 + case "$server" in 1.72 + */*|*@*) ;; 1.73 + *) echo -n "$server login: " 1.74 + read -t 30 user || exit 1 1.75 + [ -n "$user" ] || exit 1 1.76 + server="$user@$server";; 1.77 + esac 1.78 + 1.79 + # Launch OpenSSH or Dropbear 1.80 + sshargs="-oPreferredAuthentications=keyboard-interactive,password -oNoHostAuthenticationForLocalhost=yes -oLogLevel=FATAL -F/dev/null"; 1.81 + [ -L /usr/bin/ssh ] && sshargs="" 1.82 + case "$server" in 1.83 + */*) exec ${server%/*} ${server#*/} $port ;; 1.84 + *) exec ssh $sshport $sshargs $server ;; 1.85 + esac 1.86 +} 1.87 + 1.88 +pidfile=/var/run/shellinaboxd.pid 1.89 +case "$1" in 1.90 +service) 1.91 + case "$2" in 1.92 + /) shift 2; launch_ssh "$@" ;; 1.93 + esac 1.94 + ;; 1.95 +start) 1.96 + dir=$(dirname $exe) 1.97 + eval shellinaboxd --background=$pidfile --user=0 \ 1.98 + --css=/usr/share/shellinabox/object.css \ 1.99 + --user-css 10px:-/usr/share/shellinabox/10px.css,12px:+/usr/share/shellinabox/12px.css,14px:-/usr/share/shellinabox/14px.css,16px:-/usr/share/shellinabox/16px.css \ 1.100 + --user-css Normal:+/usr/share/shellinabox/black-on-white.css,Reverse:-/usr/share/shellinabox/white-on-black.css \ 1.101 + -s /login:LOGIN $(services_arg) 1.102 + ;; 1.103 +stop) 1.104 + [ -s $pidfile ] && kill $(cat $pidfile) 1.105 + ;; 1.106 +esac