我的 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 行为异常的可能原因提供任何提示,我们将不胜感激。