gpg列表键错误trustdb不可写

时间:2017-01-29 01:51:41

标签: gnupg

当我尝试列出我的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

所以我想知道为什么trustdb不可写。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

似乎已在bug 771976

中报告过
  

我在一台机器上运行命令apt-key list时发现了这一点   根文件系统通常以只读方式挂载   这会导致gpg与“--trustdb-name”,“/etc/apt//trustdb.gpg”,“--list-keys”一起运行。
  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添加in the comments

  

我改为.gnupg目录并列出了一个清单   我看到那里的文件归root所有!所以我做了一个sudo chown -R myuser:myuser *   然后我再次运行gpg --list-keys并且它有效!   问题在于.gnupg中的文件由root出于某种原因