什么是“/tmp/kerb5cc_“具体是文件吗?

什么是“/tmp/kerb5cc_“具体是文件吗?

我正在尝试弄清楚 kerberos 是如何工作的。我/tmp/有一堆 Kerberos 文件,例如krb5cc_<user-id>.它们到底是什么?查看它们,我发现它们只是一些加密的字符串。如果有人想在 docker 文件中使用它们,我该如何访问它们?由于docker环境隔离,无法访问/tmp.那么我怎样才能获得这些 kerberos 票证呢?

答案1

您发现的是 Kerberos 凭据缓存(“缓存")。这些在有效时和用户会话持续期间保留 Kerberos 凭据。这有助于尽量减少与密钥分发中心 (KDC) 的联系。

有大量的知识可以帮助阐明 Kerberos,更具体地说,这些文件的目的和功能。

由于 Kerberos 是由 MIT 开发的,他们有关于该协议的良好文档,而且我总是提到它的复杂性。

凭证缓存通常包含一个初始票证,该票证是使用密码或其他形式的身份验证获得的。如果此票证是票证授予票证,则无需密码即可使用它来获取其他凭据。由于凭据缓存不存储密码,因此如果计算机遭到入侵,对用户帐户造成的长期损害较小。

当您kinitklist您显示用户缓存的内容时,这也会让您清楚从哪里klist提取该缓存(这也可能有助于弄清楚为什么类似的内容会出现在/tmp):

[kkahn@host ~]$ klist
Ticket cache: FILE:/tmp/krb5cc_1987
Default principal: [email protected]

Valid starting     Expires            Service principal
02/22/21 15:34:12  02/23/21 15:34:09  krbtgt/[email protected]

当您kdestroy只需将零写入用户的凭据缓存时。man kdestroy应该明确这一点:

DESCRIPTION
       The  kdestroy utility destroys the user's active Kerberos authorization tickets by writing zeros to the specified credentials cache that contains them.  If the credentials cache is not specified, the default credentials cache is destroyed.  If kdestroy was built with Kerberos 4
       support, the default behavior is to destroy both Kerberos 5 and Kerberos 4 credentials.  Otherwise, kdestroy will default to destroying only Kerberos 5 credentials.

我还提供了您可能会发现相关的知识库。

答案2

如果有人想在 docker 文件中使用它们,我该如何访问它们?

如果您想从容器内部使用主机上预先存在的凭证缓存,您可以将其挂载到容器中,然后设置KRB5CCNAME环境变量指定安装它的路径:

docker run -v /tmp/krb5cc_$UID:/tmp/krb5cc -e KRB5CCNAME=/tmp/krb5cc ...

相关内容