查询 GNOME 密钥环的状态

查询 GNOME 密钥环的状态

我如何从终端查询 GNOME 密钥环是否已解锁?我查看了这个问题询问如何锁定密钥环,其中一个答案显示了如何使用 DBus 执行此操作。我现在的问题是是否可以做类似的事情,但只是查询状态。

我问这个问题是为了有一个小状态图标显示钥匙圈是否已解锁。

答案1

每个秘密集合(即密钥环)都有一个“已锁定”属性。您可以通过在 org.freedesktop.DBus.Properties 接口上调用 Get() 来检索对象属性:

$busctl --用户自省 org.freedesktop.secrets \
                           /org/freedesktop/secrets/collection/login
名称 类型 签名 结果/值
org.freedesktop.DBus.Properties 接口--
.Get 方法 ss v
org.freedesktop.Secret.Collection 接口--
.Label 属性“登录”
.Locked 属性 b false

$busctl --用户获取属性 org.freedesktop.secrets \
                             /org/freedesktop/secrets/collection/登录 \
                             org.freedesktop.Secret.Collection 已锁定
b 错误
$gdbus 内省 -e -d org.freedesktop.secrets \
                      -o /org/freedesktop/secrets/collection/login
节点 /org/freedesktop/secrets/collection/login {
  接口 org.freedesktop.DBus.Properties {
    方法:
      获取(在 s 接口名称中,
          在 s 属性名称中,
          出v值);
  };
  接口 org.freedesktop.Secret.Collection {
    特性:
      只读b锁定=false;
  };
};

$gdbus 调用 -e -d org.freedesktop.secrets \
                -o /org/freedesktop/secrets/collection/login \
                -m org.freedesktop.DBus.属性.获取 \
                   org.freedesktop.Secret.Collection 已锁定
(<false>,)

您还可以通过PropertiesChanged信号接收属性更改通知(取决于编程语言,您的 D-Bus 库可能会为此提供一个包装器)。

相关内容