저는 Gnome 키링이 주로 기본 키링으로 잠금 해제되어 있는지 확인하는 방법을 찾고 있습니다. 거의 사용하고 있지만 secret-tool
키링이 잠겨 있으면 여전히 대화 상자가 표시됩니다.
사용자에게 키링 잠금을 해제하도록 요구하고 싶지 않습니다.
잠기거나 잠금 해제하면 이야기가 끝납니다. 목적은 사용자가 키체인을 이해하거나 생각할 필요가 없도록 하는 것입니다. 키링이 잠겨 있으면 한 가지 작업(모든 키링 삭제)을 수행하고, 키링이 잠금 해제된 경우 다른 작업(일반적으로 진행)을 수행합니다. 모두 백그라운드에서 자동으로 진행됩니다.
그렇다면 문제는 어떤 도구가 실제로 그러한 검사를 허용하는가 하는 것입니다. 나머지 스크립트는 준비되어 있습니다.조용한바꾸다 secret-tool
.
답변1
그놈 키체인 도구(그놈 키링을 검사하고 제어하기 위해 몇 가지 작은 도구를 만들었습니다)
소스 및 릴리스:https://github.com/intika/gnome-keyring-tools
키체인 잠금 - gkey-lock.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;
}
}
키체인 잠금 해제 - gkey-unlock.c
#include <stdio.h>
#include <gnome-keyring.h>
int main() {
GnomeKeyringResult lock_result = gnome_keyring_unlock_sync(NULL,NULL);
if (lock_result == GNOME_KEYRING_RESULT_OK) {
printf("Successfully unlocked\n");
return 0;
} else {
printf("Error unlocking keyring: %d\n", lock_result);
return 1;
}
}
키링 확인 - gkey-check.c
#include <stdio.h>
#include <gnome-keyring.h>
int main() {
GnomeKeyringInfo *info;
GnomeKeyringResult gkr;
gkr = gnome_keyring_get_info_sync(NULL, &info);
if (gkr != GNOME_KEYRING_RESULT_OK) {
printf("error\n");
return -1;
}
if (gnome_keyring_info_get_is_locked(info)) {
printf("locked\n");
return 0;
}
else {
printf("unlocked\n");
return -1;
}
gnome_keyring_info_free(info);
}
구축하는 방법
cc gkey-lock.c -o gkey-lock -Wall -I/usr/include/gnome-keyring-1 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -lgnome-keyring -lglib-2.0
cc gkey-unlock.c -o gkey-unlock -Wall -I/usr/include/gnome-keyring-1 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -lgnome-keyring -lglib-2.0
cc gkey-check.c -o gkey-check -Wall -I/usr/include/gnome-keyring-1 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -lgnome-keyring -lglib-2.0
보너스 - Python을 사용하여 확인 - gkey-check.py
import gnomekeyring
print gnomekeyring.get_info_sync(gnomekeyring.get_default_keyring_sync()).get_is_locked()
보너스 II - KDE 작업 표시줄/트레이에서 Gnome 키링 상태 모니터링
문자열 외에도 잠금 해제 시 gkey-check 반환 오류가 발생했으며 unlocked
KDE Server Status
위젯을 사용하여 잠긴/잠금 해제된 시각적 아이콘을 통해 키링 상태를 모니터링할 수 있었습니다. :) 명령을 사용하여gkey-check