AUTARCH v1.9 — remote monitoring, SSH manager, daemon, vault, cleanup
- Add Remote Monitoring Station with PIAP device profile system - Add SSH/SSHD manager with fail2ban integration - Add privileged daemon architecture for safe root operations - Add encrypted vault, HAL memory, HAL auto-analyst - Add network security suite, module creator, codex training - Add start.sh launcher script and GTK3 desktop launcher - Remove Output/ build artifacts, installer files, loose docs - Update .gitignore for runtime data and build artifacts - Update README for v1.9 with new launch method, screenshots, and features Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -18,6 +18,7 @@ from pathlib import Path
|
||||
from typing import Optional, Dict, List, Any, Tuple
|
||||
|
||||
from core.paths import get_data_dir, find_tool
|
||||
from core.daemon import root_exec
|
||||
|
||||
|
||||
class WireGuardManager:
|
||||
@@ -59,20 +60,20 @@ class WireGuardManager:
|
||||
return ('', str(e), 1)
|
||||
|
||||
def _run_wg_sudo(self, args, timeout=10):
|
||||
"""Run wg command with sudo, return (stdout, stderr, rc)."""
|
||||
"""Run wg command with root privileges via daemon, return (stdout, stderr, rc)."""
|
||||
if not self._wg_bin:
|
||||
return ('', 'wg binary not found', 1)
|
||||
cmd = ['sudo', self._wg_bin] + args
|
||||
try:
|
||||
proc = subprocess.run(cmd, capture_output=True, text=True, timeout=timeout)
|
||||
return (proc.stdout, proc.stderr, proc.returncode)
|
||||
except subprocess.TimeoutExpired:
|
||||
return ('', 'Command timed out', 1)
|
||||
except Exception as e:
|
||||
return ('', str(e), 1)
|
||||
cmd = [str(self._wg_bin)] + args
|
||||
r = root_exec(cmd, timeout=timeout)
|
||||
return (r['stdout'], r['stderr'], r['code'])
|
||||
|
||||
def _run_cmd(self, cmd, timeout=10, input_data=None):
|
||||
"""Run arbitrary command, return (stdout, stderr, rc)."""
|
||||
"""Run arbitrary command, return (stdout, stderr, rc).
|
||||
Commands starting with 'sudo' are routed through the privileged daemon."""
|
||||
# Strip sudo and route through daemon
|
||||
if cmd and cmd[0] == 'sudo':
|
||||
r = root_exec(cmd[1:], timeout=timeout, stdin=input_data)
|
||||
return (r['stdout'], r['stderr'], r['code'])
|
||||
try:
|
||||
proc = subprocess.run(
|
||||
cmd, capture_output=True, text=True,
|
||||
|
||||
Reference in New Issue
Block a user