Как заблокировать разблокированный брелок GNOME?

Предлагается ввести пароль для разблокировки набора ключей GNOME при входе в свою учетную запись. Мне было интересно, как заблокировать брелок в том же сеансе, который был разблокирован? (Я понимаю, что могу выйти, а затем войти снова для того же эффекта)

Это может быть полезно, если по каким-либо причинам я чувствую некоторую подозрительную активность и хочу сначала заблокировать все программы для дальнейшего доступа к связке ключей перед тем, как расследовать подозрительную активность.

Кроме того, есть ли возможность просто заблокировать графический интерфейс для GNOME Keyring (Seahorse)?

5 ответов

Решение

Единственное, что вы можете сделать, если произойдет какое-то подозрительное действие, это убить демона gnome-keyring-daemon следующим образом:

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

источник

Вам нужно только вызвать 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)

Связку ключей 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

Приложение Gnome Keyring GUI называется Seahorse и отображается в меню как «Пароли и ключи». Seahorse может управлять несколькими коллекциями, и вы можете заблокировать их непосредственно из графического пользовательского интерфейса (они отображаются в разделе « Пароли» на боковой панели), просто щелкнув значок замка рядом с каждой из них. По умолчанию у вас будет только коллекция Login .

Если вы не видите боковую панель, нажмите « Просмотр» , затем установите флажок «По брелоку» , чтобы отобразить ее.


Если вы хотите сделать это из оболочки, например. автоматически этот однострочник Python заблокирует все коллекции, в зависимости от того, что делает морской конек при блокировке ключей:

      python -c 'import dbus; bus=dbus.SessionBus(); bus.call_blocking("org.freedesktop.secrets", "/org/freedesktop/secrets", "org.freedesktop.Secret.Service", "Lock", "ao", [bus.call_blocking("org.freedesktop.secrets", "/org/freedesktop/secrets", "org.freedesktop.DBus.Properties", "GetAll", "s", ["org.freedesktop.Secret.Service"]).get("Collections", [])])'

В развернутом виде это будет выглядеть так:

      #!/usr/bin/env python

import dbus

bus = dbus.SessionBus()

# Get Collections array
collections = bus.call_blocking(
    "org.freedesktop.secrets", "/org/freedesktop/secrets",
    "org.freedesktop.DBus.Properties", "GetAll",
    "s", ["org.freedesktop.Secret.Service"]
).get("Collections", [])

# Lock all Collections (return value is an array of locked collections)
bus.call_blocking(
    "org.freedesktop.secrets", "/org/freedesktop/secrets",
    "org.freedesktop.Secret.Service", "Lock",
    "ao", [collections]
)

В главном графическом интерфейсе Gnome keyring (по крайней мере, в текущей версии, морской конек 3.36) пользователь может щелкнуть правой кнопкой мыши на связке ключей, чтобы открыть контекстное меню, в котором доступна опция блокировки связки ключей. Также возможно создать больше связок ключей в дополнение к стандартной (называемой "логином") и хранить пароли в разных связках ключей, так что пароли не будут доступны сразу.

Другие вопросы по тегам