GPG列出密钥错误:信任数据库不可写。

3

当我尝试列出我的gpg密钥时,出现了一个错误:

gpg --list-keys
gpg: NOTE: trustdb not writable
gpg: checking the trustdb
gpg: trustdb rec 56: write failed (n=-1): Bad file descriptor
gpg: trustdb: sync failed: Bad file descriptor

我尝试对我的用户目录进行递归 chown 操作,但似乎并没有解决问题。

该卷不是只读的:

  [web1:~] bluethundr% touch test
[web1:~] bluethundr% echo hi > test
[web1:~] bluethundr% cat test
hi

我想知道为什么信任数据库不可写。

我该如何解决这个问题?

2个回答

1

这似乎已经在错误771976中报告了。

我在运行命令apt-key list时,在一个根文件系统通常以只读方式挂载的机器上发现了这个问题。
这会导致使用“--trustdb-name”、“/etc/apt//trustdb.gpg”和“--list-keys”来运行gpg
gpg试图创建“/etc/apt//trustdb.gpg.lock”以锁定trustdb,但失败了。

考虑到--list-keys是不需要写入任何内容的操作,在这种情况下失败是不好的。

即使卷不是只读的,请检查(使用strace)gpg --list-key尝试创建其trustdb.gpg.lock文件的位置。

 strace gpg --list-key | grep trustdb.gpg.lock

OP bluethundr在评论中添加了:

我切换到了.gnupg目录并列出了文件。
我发现里面的文件是由root拥有的!所以我运行了sudo chown -R myuser:myuser *
然后我再次运行了gpg --list-keys,它奏效了!
问题在于.gnupg中的文件因某种原因被root拥有。


1
我切换到了 .gnupg 目录并列出了文件。我发现那里的文件是由 root 拥有的!所以我运行了 sudo chown -R myuser:myuser *。然后我再次运行 gpg --list-keys,它成功了!问题在于 .gnupg 中的文件由某种原因被 root 拥有。 - bluethundr

0

我授予了C盘安装目录中存在的trustdb.gpg文件的权限,授权给我登录的用户。此后它就可以工作了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接