diff options
Diffstat (limited to 'scripts/canonical-vm-keyring.sh')
| -rw-r--r-- | scripts/canonical-vm-keyring.sh | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/scripts/canonical-vm-keyring.sh b/scripts/canonical-vm-keyring.sh new file mode 100644 index 0000000..8af901a --- /dev/null +++ b/scripts/canonical-vm-keyring.sh @@ -0,0 +1,28 @@ +#!/bin/bash +set -euo pipefail +test "$(id -u)" = 0 +test -f /etc/canonical-lab +systemd-detect-virt --vm --quiet +home=/home/canonical-test +key=$home/.local/state/canonical-lab/keyring-password +test ! -f "$key" || exit 0 +systemctl stop gdm +loginctl terminate-user canonical-test +umask 077 +install -d -o canonical-test -g canonical-test "$home/.local/state/canonical-lab" +if test -d "$home/.local/share/keyrings"; then + test ! -e "$home/.local/share/keyrings-before-lab-unlock" + mv "$home/.local/share/keyrings" "$home/.local/share/keyrings-before-lab-unlock" +fi +cat >"$key" +test -s "$key" +chown canonical-test:canonical-test "$key" +dropin=$home/.config/systemd/user/gnome-keyring-daemon.service.d +install -d -o canonical-test -g canonical-test "$dropin" +cat >"$dropin/lab.conf" <<'EOF' +[Service] +ExecStart= +ExecStart=/usr/bin/gnome-keyring-daemon --foreground --components=pkcs11,secrets --control-directory=%t/keyring --unlock +StandardInput=file:%h/.local/state/canonical-lab/keyring-password +EOF +chown canonical-test:canonical-test "$dropin/lab.conf" |
