aboutsummaryrefslogtreecommitdiff
path: root/working/keyring-crash/setup-guest.sh
diff options
context:
space:
mode:
Diffstat (limited to 'working/keyring-crash/setup-guest.sh')
-rw-r--r--working/keyring-crash/setup-guest.sh40
1 files changed, 40 insertions, 0 deletions
diff --git a/working/keyring-crash/setup-guest.sh b/working/keyring-crash/setup-guest.sh
new file mode 100644
index 0000000..0da7c69
--- /dev/null
+++ b/working/keyring-crash/setup-guest.sh
@@ -0,0 +1,40 @@
+#!/bin/bash
+# Exploration fixture: run as root only in the disposable VM.
+set -euo pipefail
+[[ $(uname -n) == archsetup-test && $EUID == 0 ]] || exit 2
+if ! id keyring-test >/dev/null 2>&1; then
+ useradd -m -u 1000 -s /bin/bash keyring-test
+ printf '%s\n' 'keyring-test:synthetic-vm-password' | chpasswd
+fi
+loginctl enable-linger keyring-test
+systemctl start user@1000.service
+runuser -u keyring-test -- env \
+ XDG_RUNTIME_DIR=/run/user/1000 \
+ DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus \
+ systemctl --user stop gnome-keyring-daemon.service gnome-keyring-daemon.socket
+pkill -KILL -u 1000 -x gnome-keyring-d || true
+runuser -u keyring-test -- env \
+ XDG_RUNTIME_DIR=/run/user/1000 \
+ DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus \
+ systemctl --user enable gnome-keyring-daemon.socket
+printf '%s\n' 'synthetic-vm-password' | runuser -u keyring-test -- env \
+ XDG_RUNTIME_DIR=/run/user/1000 \
+ DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus \
+ LD_LIBRARY_PATH="${KEYRING_DAEMON_LIBRARY_PATH:-}" \
+ ASAN_OPTIONS="${ASAN_OPTIONS:-}" \
+ "${KEYRING_DAEMON_BINARY:-gnome-keyring-daemon}" --unlock
+printf '%s\n' 'synthetic-vm-secret' | runuser -u keyring-test -- env \
+ XDG_RUNTIME_DIR=/run/user/1000 \
+ DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus \
+ secret-tool store --label='Disposable VM fixture' purpose keyring-vm
+observed=$(runuser -u keyring-test -- env \
+ XDG_RUNTIME_DIR=/run/user/1000 \
+ DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus \
+ secret-tool lookup purpose keyring-vm)
+[[ $observed == synthetic-vm-secret ]]
+echo 'Synthetic encrypted-secret round trip passed.'
+pacman -Q gnome-keyring glib2 libsecret dbus dbus-broker dbus-broker-units systemd
+runuser -u keyring-test -- env \
+ XDG_RUNTIME_DIR=/run/user/1000 \
+ DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus \
+ systemctl --user show gnome-keyring-daemon.service -p MainPID -p NRestarts