我有一台 Ubuntu 21.10 电脑加入了 Samba AD 域控制器。一切工作正常 - Kerberos 工作(可以使用 kinit 获取票证),winbind 工作(可以获取有关用户和组的信息),我能够使用域凭据登录系统。
并且手动安装共享也可以使用 Kerberos 和 ntlmssp 授权:
sudo mount -t cifs //server/path /mount/point -o username=USER,domain=DOMAIN,sec=ntlmssp
sudo mount -t cifs //server/path /mount/point -o username=USER,domain=DOMAIN,sec=krb5
像 username=USER@DOMAIN 这样设置用户名也可以。
问题是当用户通过 gnome 登录时,我无法让 pam_mount 工作!
像这样在 pam_mount.conf.xml 中使用 krb5
<volume
fstype="cifs"
server="server"
path="path"
mountpoint="mount/point"
options="sec=krb5"
/>
在 auth.conf 中给出错误
(mount.c:72): mount error(126): Required key not available
像这样在 pam_mount.conf.xml 中使用 ntlmssp
<volume
fstype="cifs"
server="server"
path="path"
mountpoint="mount/point"
options="sec=ntlmssp"
/>
在 auth.conf 中给出不同的错误
(pam_mount.c:173): conv->conv(...): Conversation error
在 pam_mount 中启用调试后,我还可以在 auth.log 中看到它正在执行的确切安装命令,并且当我手动运行它们时,它与上面的工作相同。
我尝试了以下方法:
- 以不同的组合使用挂载选项:vers=3.0, _netdev,user,sec
- 强制 Kerberos 使用 pam_winbind 配置将票证存储在 /tmp/krb5cc_%u 中的文件中
- 阅读大量论坛
有任何想法吗?
我终于弄明白了。这是一个有效的 pam_mount 卷配置:
关键要求似乎是: