#!/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