如何锁定已解锁的 GNOME 钥匙环?

如何锁定已解锁的 GNOME 钥匙环?

当我登录我的用户帐户时,系统会提示输入密码以解锁 GNOME 密钥环。我想知道如何在解锁后的同一会话中重新锁定密钥环?(我知道我可以注销然后再次登录以获得相同的效果)

如果由于某种原因,我觉得有些可疑活动,并想在调查可疑活动之前首先阻止所有程序进一步访问密钥环,这可能会有所帮助。

另外,有没有办法可以锁定 GNOME Keyring(Seahorse)的 GUI?

答案1

如果发生一些可疑活动,你可以做的一件事就是杀死gnome-keyring-守护进程像这样:

kill -9 $(pgrep gnome-keyring-d)

您只需编写一个简单的脚本即可自动完成此操作:

#!/bin/bash
case $1 in
    hibernate)
        pkill gnome-keyring-d
        ;;
    suspend)
        pkill gnome-keyring-d
        ;;
    thaw)
        ;;
    resume)
        /usr/bin/gnome-keyring-daemon --daemonize --login
        ;;
    *)  echo "Somebody is calling me totally wrong."
        ;;
esac

来源

答案2

你只需要打电话gnome_keyring_lock_all_sync()

这是一个完成这个任务的简单程序:

锁-keyring.c:

#include <stdio.h>
#include <gnome-keyring.h>

int main() {
    GnomeKeyringResult lock_result = gnome_keyring_lock_all_sync();
    if (lock_result == GNOME_KEYRING_RESULT_OK) {
        printf("Successfully locked\n");
        return 0;
    } else {
        printf("Error locking keyring: %d\n", lock_result);
        return 1;
    }
}

使用以下方式编译cc lock-keyring.c -o lock-keyring -Wall $(pkg-config gnome-keyring-1 --cflags --libs)

答案3

Gnome 密钥环可以通过 dbus 锁定:

dbus-send --dest=org.gnome.keyring --print-reply /org/freedesktop/secrets org.freedesktop.Secret.Service.LockService
# or with qdbus
qdbus org.gnome.keyring /org/freedesktop/secrets org.freedesktop.Secret.Service.LockService

来源:https://github.com/Intika-Linux-Apps/Gnome-Keyring-Tools/issues/1#issuecomment-443358508

答案4

在 Gnome 密钥环的主 GUI 中(至少在当前版本,即 seahorse 3.36 中),用户可以右键单击密钥环以获取上下文菜单,其中提供了锁定密钥环的选项。除了默认密钥环(称为“登录”)之外,还可以创建更多密钥环,并将密码存储在不同的密钥环中,这样密码就不会同时可用。

相关内容