我已经在 Debian Stretch 上设置了 Samba AD。另一个延伸客户端节点能够使用 AD 凭据进行身份验证。
域用户在客户端节点上的权限有限,这意味着他无法在客户端上安装任何内容。
在客户端,我测试了两件事:
使用密码安装:
# mount -t cifs \\\\fileserver.my.org\\share /mnt -o user=domainUser1
然后我被要求输入 的域密码
domainUser1
。然后,共享被挂载root
。使用 Kerberos 票证安装:
# kinit domainUser1
# mount -t cifs \\\\fileserver.my.org\\share /mnt -o sec=krb5
klist
这样,如果我当前的会话有 kerberos 票证(由 验证),我就可以挂载共享。
手动安装一切正常。当我尝试使用 AutoFS 挂载共享时,问题就出现了。
/etc/auto.master
内容如下:
+目录:/etc/auto.master.d
+自动大师
/cifs /etc/auto.cifs
并/etc/auto.cifs
写道:
分享 -fstype=cifs,multiuser,cruid=${UID},sec=krb5 ://fileserver.my.org/share
根据我在过去一个小时对 AutoFS 的了解,这应该可行。但由于某种原因,/cifs/
文件夹总是空的。我尝试了/var/log/messages
和/var/log/syslog
,但在日志中没有发现任何值得注意的地方。
答案1
调试 AutoFS
要调试 autofs,请停止该服务并在命令行上运行它:
sudo service autofs stop
sudo automount -f -d
或者打开调试日志记录
编辑 /etc/autofs.conf 并将日志记录设置为“debug”或“verbose”:
logging = "debug"
玩这个..但实际上我有足够的细节将其保留为默认值(即注释掉该行)
检查 Kerberos 票证文件名是否正确
这就是让我们头疼的事情。多年来,AutoFS 无法在 Kubuntu 18.04 中运行,直到我们更正生成的 Kerberos 密钥文件的文件名。如果您查看 daemon.log,请检查它正在搜索的文件是否与 /tmp/krb* 中看到的文件同名。
这是 daemon.log 中的样子,您可以看到压缩的文件名是什么:
May 14 17:08:29 computer123 cifs.upcall: get_existing_cc: default ccache is FILE:/tmp/krb5cc_12345678
我很确定上面的内容是使用默认日志选项,即在 /etc/autofs.conf 中注释掉的日志行。事实上,所谓的详细选项之一并没有显示出来..(?!)
解决方案 - 我们必须编辑 /etc/sssd/sssd.conf 并在 [domain/yourAD_ServerName] 下添加以下内容
krb5_ccname_template=FILE:%d/krb5cc_%U
这告诉 sssd 使用 AutoFS 所需的文件名制作 kerboros 票证。我必须在更改生效之前重新启动(是的,我尝试重新启动 sssd-secrets、sssd、autofs)。