我在 CentOS 6.4 上。使用 kstart,我使用 Active Directory 中的计算机帐户(即 computername$)保持 TGT 处于活动状态。票证缓存分配给 root,位于 /tmp/krb5cc_0。我使用 sec=krb5 以 root 身份 mount.cifs。这有效,我可以浏览共享。
问题是,虽然用户可以通过 ssh 浏览共享文件,但在 cron 下运行的 rsync 在挂载后无法访问它。Subversion Edge 备份功能也无法访问它。Rsync 收到错误:
rsync: ERROR: cannot stat destination "/mnt/dfs/backups/redmine/": Key has been revoked (128)
并且 csvn 的备份出现相同的 128 错误:
CIFS VFS: Send error in SessSetup = -128
CIFS VFS: cifs_mount failed w/return code = -128
有时
CIFS VFS: Send error in SessSetup = -122
CIFS VFS: cifs_mount failed w/return code = -122
我认为这意味着没有配额。
我尝试过禁用 SELinux,所以这不是问题所在。如何让这些“后台任务”能够使用 Kerberos CIFS 共享?
答案1
Cron 没有使用票证缓存,要么是因为它不知道(KRB5CCNAME
未设置或传递给作业),要么是因为它无法读取缓存(缓存上的权限阻止正在运行作业的用户读取它)。