登录
首页 >  Golang >  Go问答

了解 Linux 内核密钥环 (Golang) 中 "user" 范围的含义

来源:stackoverflow

时间:2024-02-07 11:45:21 253浏览 收藏

IT行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰。所以我们需要踏踏实实的不断学习,精进自己的技术,尤其是初学者。今天golang学习网给大家整理了《了解 Linux 内核密钥环 (Golang) 中 "user" 范围的含义》,聊聊,我们一起来看看吧!

问题内容

由于此 Go 包的官方文档缺乏详细信息,我想知道此页面上的“用户”范围到底意味着什么?

这是否意味着密钥在 UID 的生命周期内存储,即只要用户存在,还是意味着密钥可以由用户空间程序创建、更新和读取,如此处所述?

基于一个非常简单的测试,我注意到每当我重新启动 Linux 虚拟机时,密钥环也会被擦除,它不会保留在任何地方,这意味着只要 UID 存在,它就不会持续。 p>

正确答案


它指的是“用户”密钥环,是可以通过 Linux 内核密钥环 API 使用的“锚定密钥环”之一。 man 7 keyrings(请参阅“锚定键”部分)和 man 7 user-keyring 对此进行了记录。

这似乎是您所指的库所使用的。它导入 00github.com/99designs/keyring(如您所见 here),它通过 keyctl 和类似的系统调用使用 KEY_SPEC_USER_KEYRING 进行内部操作(如您所见 here)。

我注意到,每当我重新启动 Linux 虚拟机时,密钥环也会被擦除,它不会保留在任何地方

是的,这是有意的。这就是 API 的工作原理。只要至少有一个进程使用该真实 UID 运行,或者只要该进程打开的任何文件保持打开状态,锚定到特定 UID 的“用户”密钥环的密钥就会持续存在。无论系统何时重新启动或关闭,所有内容都位于 RAM 中并被擦除。

今天关于《了解 Linux 内核密钥环 (Golang) 中 "user" 范围的含义》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>