在锁定屏幕上锁定钥匙圈并卸载 ~/Private

在锁定屏幕上锁定钥匙圈并卸载 ~/Private

我的 Ubuntu-mate 18.04 有非常方便的锁屏。我想在屏幕锁定时锁定我的 gnome-keyring 并卸载 ~/Private (ecryptfs 分区)。这个想法是为了在计算机处于锁定/挂起状态时获得针对“冷启动”的保护,以防计算机被盗。

到目前为止,我已经编写了一个监控屏幕保护程序锁定/卸载的脚本

#!/bin/bash
    dbus-monitor --session "type='signal',interface='org.mate.ScreenSaver'" |
      while read x; do
        case "$x" in 
          *"boolean true"*) 
              echo SCREEN_LOCKED, umounting private
              ecryptfs-umount-private
              kill -9 $(pgrep gnome-keyring-d)
              kill -9 $(pgrep ssh-agent)
              ;;
          *"boolean false"*) echo SCREEN_UNLOCKED;;  
        esac
      done

以及一个可让它们恢复的简单 shell 脚本

#!/bin/bash
# Read Password
echo -n Password for keyring: 
read -s password
echo
# Run Command

echo -n $password | gnome-keyring-daemon -r --unlock  --components=secrets,ssh
#--components=pkcs11,secrets,ssh

if mount |grep /home/kouzne/Private >/dev/null; then
  echo /home/kouzne/Private already mounted!
else
  printf "%s" "$password" | ecryptfs-insert-wrapped-passphrase-into-keyring
  /sbin/mount.ecryptfs_private
fi

它在某种程度上起了作用,但我需要手动运行解锁脚本,有时密钥环会处于无响应的位置(gnome-keyring-d 的 CPU 使用率为 100%)。

有什么方法可以将我输入的解锁屏幕的密码提供给外部程序和/或将自定义挂钩添加到屏幕锁定-解锁?

另外,如果能对 gnome-keyring-d 行为异常的可能原因提供任何提示,我们将不胜感激。

相关内容