Инструменты Gnome Keyring(Я сделал несколько небольших инструментов для проверки и управления связкой ключей Gnome)
Источники и выпуск:https://github.com/intika/gnome-keyring-tools
Кольцо для ключей с замком -gkey -lock.c
#include
#include
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
#include
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
#include
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()
Bonus II -Мониторинг состояния набора ключей Gnome на панели задач/трее KDE
Я заставил gkey -проверить возвращаемую ошибку, когда он разблокирован в дополнение к строке unlocked
Затем я мог использовать виджет KDE Server Status
для отслеживания состояния заблокированного/разблокированного набора ключей с визуальным значком :)с помощью командыgkey-check
Просто смотрим на поведение и делаем выводы о функциях.
apt somecommand --
получает завершение, а не apt --
, а apt-get --
работает. Причина в том, что apt
объединяет функционалы разных команд, среди которых apt-get
и apt-cache
. Завершение зависит от команды sub -, поэтому имеет смысл, чтобы опции отображались после команды sub -.
примеры:
$ apt install --
--allow-change-held-packages --install-recommends
--allow-downgrades --install-suggests
--allow-insecure-repositories --no-install-recommends
--allow-remove-essential --no-install-suggests
--allow-unauthenticated --only-upgrade
--arch-only --print-uris
--assume-no --purge
--assume-yes --reinstall
--auto-remove --remove
--download --show-progress
--download-only --show-upgraded
--dry-run --simulate
--fix-broken --solver
--fix-missing --target-release
--fix-policy --trivial-only
--force-yes --upgrade
--ignore-hold --verbose-versions
--ignore-missing
но:
$ apt search --
--full --names-only