Как заблокировать разблокированный брелок 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) пользователь может щелкнуть правой кнопкой мыши на связке ключей, чтобы открыть контекстное меню, в котором доступна опция блокировки связки ключей. Также возможно создать больше связок ключей в дополнение к стандартной (называемой "логином") и хранить пароли в разных связках ключей, так что пароли не будут доступны сразу.