| Komeetan nimi | Epookki | Lähin etäisyys (AU) | Eksentrisyys | Inklinaatio (°) | Perihelin argumentti (°) | Nouseva solmu (°) | Periheliaika |
| * WebTerminal - Full Linux terminal over | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| * ?? SECURITY WARNING: This file gra | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| * Protect it behind authentication, a | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| */ | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| session_start(); | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| // ??? Initialize session state ?? | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| if (!isset($_SESSION['history'])) $_SESS | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| if (!isset($_SESSION['cwd'])) $_SESS | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| if (!isset($_SESSION['env'])) $_SESS | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| if (!isset($_SESSION['sudo_pass'])) $_SESS | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| // ??? Helper: resolve a tilde path | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| function resolve_path(string $path, string | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| if ($path === '~' || $path === '~/') r | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| if (str_starts_with($path, '~/')) r | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| if (!str_starts_with($path, '/')) r | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| return $path; | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| } | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| // ??? Helper: run a command via pro | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| function run_command(string $cmd, string $ | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| // Expand HOME for cd and shell | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $env = array_merge($_ENV, getenv() ?: | 0 | 0.00000000 | 0.000000000 | -256.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| // Intercept 'cd' ourselves (it can't | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $trimmed = trim($cmd); | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| if (preg_match('/^cd\s*(.*)?$/', $trim | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $target = trim($m[1] ?? ''); | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| if ($target === '' || $target === | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| else $target = resolve_path($targe | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| if (is_dir($target)) { | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| return ['output' => '', 'cwd' | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| } else { | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| return ['output' => "cd: $targ | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 1.00000 |
| } | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| } | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| // Prepend sudo password via stdin if | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $stdin_data = ''; | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| if (preg_match('/^\s*sudo\b/', $cmd) & | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| // Use -S to read password from st | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $cmd = preg_replace('/^\s*sudo\b/' | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $stdin_data = $sudo_pass . "\n"; | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| } | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| $descriptors = [ | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 => ['pipe', 'r'], // stdin | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 1 => ['pipe', 'w'], // stdout | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 2 => ['pipe', 'w'], // stderr | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| ]; | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| $process = proc_open( | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| ['bash', '-c', $cmd], | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $descriptors, | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $pipes, | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $cwd, | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $env | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| ); | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| if (!is_resource($process)) { | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| return ['output' => "Failed to sta | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| } | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| if ($stdin_data !== '') { | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| fwrite($pipes[0], $stdin_data); | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| } | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| fclose($pipes[0]); | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| // Read stdout + stderr with a timeout | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| stream_set_blocking($pipes[1], false); | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| stream_set_blocking($pipes[2], false); | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| $stdout = ''; | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $stderr = ''; | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $deadline = microtime(true) + 30; | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| while (microtime(true) < $deadline) { | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $read = [$pipes[1], $pipes[2]]; | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $write = $except = []; | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $changed = stream_select($read, $w | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| if ($changed === false) break; | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| foreach ($read as $pipe) { | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $chunk = fread($pipe, 8192); | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| if ($chunk === false || $chunk | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| if ($pipe === $pipes[1]) $stdo | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| else $stde | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| } | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $status = proc_get_status($process | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| if (!$status['running']) { | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| // Drain remaining output | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $stdout .= stream_get_contents | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $stderr .= stream_get_contents | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| break; | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| } | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| } | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| fclose($pipes[1]); | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| fclose($pipes[2]); | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $exit_code = proc_close($process); | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| // Combine; suppress sudo "password:" | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $stderr_clean = preg_replace('/^\[sudo | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $output = $stdout . $stderr_clean; | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| return ['output' => $output, 'cwd' => | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| } | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| // ??? AJAX endpoint ????? | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| if ($_SERVER['REQUEST_METHOD'] === 'POST') | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| header('Content-Type: application/json | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| $body = json_decode(file_get_content | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $action = $body['action'] ?? ''; | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| // Store sudo password | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| if ($action === 'sudo_auth') { | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $_SESSION['sudo_pass'] = $body['pa | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| echo json_encode(['ok' => true]); | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| exit; | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| } | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| // Clear sudo password cache | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| if ($action === 'sudo_clear') { | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $_SESSION['sudo_pass'] = null; | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| echo json_encode(['ok' => true]); | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| exit; | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| } | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| // Clear terminal history (visual only | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| if ($action === 'clear') { | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| echo json_encode(['ok' => true]); | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| exit; | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| } | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| // Run a command | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| if ($action === 'exec') { | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $cmd = trim($body['cmd'] ?? ''); | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| if ($cmd === '') { echo json_encod | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| // Handle 'clear' as a built-in | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| if ($cmd === 'clear') { | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| echo json_encode(['output' => | 33 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| exit; | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| } | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| // Handle 'history' built-in | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| if ($cmd === 'history') { | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $lines = array_map(fn($i, $c) | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| array_keys($_SESSION['hist | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| echo json_encode(['output' => | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| exit; | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| } | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| // Detect "sudo needs password" si | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $needs_sudo = preg_match('/^\s*sud | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| // Save to session history | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $_SESSION['history'][] = ['cmd' => | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| $result = run_command($cmd, $_SESS | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $_SESSION['cwd'] = $result['cwd']; | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| // Detect interactive confirmation | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $needs_confirm = (bool) preg_match | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| echo json_encode([ | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 'output' => $result['ou | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 'cwd' => $result['cw | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 'exit_code' => $result['ex | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 'needs_sudo' => $needs_sudo | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 'needs_confirm' => $needs_conf | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| ]); | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| exit; | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| } | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| // Get session history as JSON | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| if ($action === 'get_history') { | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| echo json_encode(['history' => $_S | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| exit; | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| } | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| echo json_encode(['error' => 'Unknown | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| exit; | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| } | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| // ??? Page render ??????? | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $hostname = gethostname() ?: 'server'; | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $whoami = trim(shell_exec('whoami') ?: ' | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| $cwd = $_SESSION['cwd']; | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| ?> | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| |
0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| |
0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| |
0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| = htmlspeci | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| autocapitalize="off" spellche | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| placeholder="type a command?? | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| Ready | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| |
0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
???? sudo — Authentication requi |
0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| Enter your sud |
0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| |
0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
?? Confirmation required |
0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| The command is ask |
0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| |
0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| Command History | 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | |
| 0 | 0.00000000 | 0.000000000 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |