Wrap command run to support quotes & chaining.

This commit is contained in:
Stuart Rowlands 2023-12-07 10:45:11 -08:00
parent 22178df8ae
commit 1b34337fe8

View File

@ -90,11 +90,14 @@ class Command extends Component
{ {
$this->validate(); $this->validate();
try { try {
// Wrap command to prevent escaped execution in the host.
$cmd = 'sh -c "' . str_replace('"', '\"', $this->command) . '"';
if (!empty($this->dir)) { if (!empty($this->dir)) {
$exec = "docker exec -w {$this->dir} {$this->container} {$this->command}"; $exec = "docker exec -w {$this->dir} {$this->container} {$cmd}";
} }
else { else {
$exec = "docker exec {$this->container} {$this->command}"; $exec = "docker exec {$this->container} {$cmd}";
} }
$activity = remote_process([$exec], $this->server, ignore_errors: true); $activity = remote_process([$exec], $this->server, ignore_errors: true);
$this->emit('newMonitorActivity', $activity->id); $this->emit('newMonitorActivity', $activity->id);