aboutsummaryrefslogtreecommitdiff
path: root/working/keyring-crash/setup-guest.sh
blob: 0da7c69e701709ea9a87504cdff18b7161ac42b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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