Cron 如何与 Kerberos 交互进行身份验证?

Cron 如何与 Kerberos 交互进行身份验证?

我有一台 CentOS 6.4 机器,它设置了 pam_ldap 和 pam_krb5。它配置为使用我们的 Active Directory 服务器进行身份验证。我可以使用 AD 帐户通过 SSH 进入机器。

我没有设置任何类型的 keytab 文件。

我在 CentOS 机器上为 AD 用户设置了一个 crontab,它每分钟将一些数据写入文件。作业写入的文件夹位于 NFS 共享上,并且该文件夹已锁定,因此只有特定 AD 组的成员才能访问它。有问题的 AD 用户是该组的成员,并且在 CentOS 机器上没有本地帐户。

当 AD 用户未登录时,cron 如何继续以 AD 用户身份运行该作业?

答案1

如果您使用的是启用了 kerberos 的 NFSv4(如果您使用的是,我会非常惊讶),那么您需要创建某种用户密钥表,并在 cron 作业开始时使用类似 kstart 的程序来获取 kerberos tgt。否则,您不需要任何 kerberos 凭据即可访问 NFS 文件系统。

这个问题在 AFS 环境中一直存在,并且有一些标准解决方案。通常,您会创建一个备用主体放入密钥表中,并将两个主体映射到同一个 unix uid。(例如,我在 cron 系统上为 fred/ 创建了一个密钥表[电子邮件保护])并使用适当的工具将 kerberos 主体映射到相同的 unix uid[电子邮件保护]

答案2

作业正在写入的文件夹位于 NFS 共享上

NFSv3?没有进行身份验证。NFSv3 相信客户的说法,即用户就是他们所说的那个人。它也完全不安全 - 如果我拥有对某个框的 root 访问权限,那么即使该共享是 root_squash,我也可以 su 并访问 NFS 共享上的用户文件。

Cron 实际上并不是以 DOMAIN\user 的身份运行该作业,而是以 UID # 的身份运行它,而这正是 NFSv3 所关心的。

现在,如果您正在安装 CIFS/NFSv4 共享,它将会失败。

相关内容