From 4324dc15644dc9be6eff4340c80f4bbce578c36a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Pierret=20=28fepitre=29?= Date: Sun, 5 May 2019 17:02:28 +0200 Subject: [PATCH] Add admin.vm.TerminalDispVM qubes-rpc --- Makefile | 2 +- debian/qubes-core-agent.install | 1 + qubes-rpc/admin.vm.TerminalDispVM | 17 +++++++++++++++++ rpm_spec/core-agent.spec.in | 1 + 4 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 qubes-rpc/admin.vm.TerminalDispVM diff --git a/Makefile b/Makefile index 85a5b66..2f6f370 100644 --- a/Makefile +++ b/Makefile @@ -282,7 +282,7 @@ install-common: install-doc install -m 0755 qubes-rpc/qubes.StartApp $(DESTDIR)/etc/qubes-rpc install -m 0755 qubes-rpc/qubes.PostInstall $(DESTDIR)/etc/qubes-rpc install -m 0755 qubes-rpc/qubes.GetDate $(DESTDIR)/etc/qubes-rpc - + install -m 0755 qubes-rpc/admin.vm.TerminalDispVM $(DESTDIR)/etc/qubes-rpc install -d $(DESTDIR)/etc/qubes/rpc-config install -m 0644 qubes-rpc/rpc-config.README $(DESTDIR)/etc/qubes/rpc-config/README for config in qubes-rpc/*.config; do \ diff --git a/debian/qubes-core-agent.install b/debian/qubes-core-agent.install index 0d7535e..bf87a72 100644 --- a/debian/qubes-core-agent.install +++ b/debian/qubes-core-agent.install @@ -8,6 +8,7 @@ etc/default/grub.d/30-qubes.cfg etc/fstab etc/needrestart/conf.d/50_qubes.conf etc/profile.d/qt_x11_no_mitshm.sh +etc/qubes-rpc/admin.vm.TerminalDispVM etc/qubes-rpc/qubes.Backup etc/qubes-rpc/qubes.DetachPciDevice etc/qubes-rpc/qubes.Filecopy diff --git a/qubes-rpc/admin.vm.TerminalDispVM b/qubes-rpc/admin.vm.TerminalDispVM new file mode 100644 index 0000000..c1b752d --- /dev/null +++ b/qubes-rpc/admin.vm.TerminalDispVM @@ -0,0 +1,17 @@ +#!/bin/bash -- + +set -eu +sock_name="$(mktemp -u XXXXXX)" +if [[ "$sock_name" =~ [^a-zA-Z0-9] ]]; then + echo "Invalid internal sock name provided." + exit 1 +fi +sock="/var/run/qubes/$sock_name.terminal.sock" + +xterm -geometry 80x24 -e /bin/sh -c " +until [ -S $sock ]; do sleep 1; done || true +exec socat file:/dev/tty,rawer,escape=0x0f UNIX-CONNECT:$sock" & + +trap 'rm -rf -- "$sock"' EXIT +socat "UNIX-LISTEN:\"$sock\"" - +wait diff --git a/rpm_spec/core-agent.spec.in b/rpm_spec/core-agent.spec.in index d46f981..66b4910 100644 --- a/rpm_spec/core-agent.spec.in +++ b/rpm_spec/core-agent.spec.in @@ -558,6 +558,7 @@ rm -f %{name}-%{version} /etc/fstab /etc/pki/rpm-gpg/RPM-GPG-KEY-qubes* %dir /etc/qubes-rpc +%config(noreplace) /etc/qubes-rpc/admin.vm.TerminalDispVM %config(noreplace) /etc/qubes-rpc/qubes.Filecopy %config(noreplace) /etc/qubes-rpc/qubes.OpenInVM %config(noreplace) /etc/qubes-rpc/qubes.OpenURL