私はGnomeキーリングが主にデフォルトのキーリングでロック解除されていることを確認する方法を探しています。ほとんど使用していますが、secret-tool
キーリングがロックされている場合は、まだダイアログボックスが表示されます。
ユーザーにキーリングのロックを解除するように要求したくありません。
ロックまたはロック解除すると、話が終わります。目的は、ユーザーがキーチェーンを理解したり考えたりする必要がないようにすることです。キーリングがロックされている場合は1つのタスク(すべてのキーリングを削除)を実行し、キーリングがロック解除されている場合は別のタスク(通常は進行中)を実行します。すべてバックグラウンドで自動的に行われます。
もしそうなら、問題はどのツールが実際にそのような検査を許可するのかということです。残りのスクリプトは準備ができています。静かな変えるsecret-tool
。
答え1
GNOMEキーチェーンツール(GNOMEキーリングを調べて制御するためにいくつかの小さなツールを作成しました)
ソースとリリース: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キーリング状態を監視する
unlocked
文字列に加えて、ロック解除時にgkey-check戻りエラーが発生しましたServer Status
。 :)コマンドを使用してgkey-check