通过 autofs 访问 samba 共享时提示输入密码

通过 autofs 访问 samba 共享时提示输入密码

我们在 Ubuntu Server 16.04 上有一个使用 Samba 的文件服务器,它使用外部 LDAP 服务器进行身份验证。此外,LDAP 服务器为文件服务器的 Samba 共享 (带有automountInformation: -fstype=cifs,rw,username=& ://fileserver/share/&) 提供了自动挂载定义,并且经过测试可以正常工作。

在我们的网络服务器上,我们会自动安装上述共享。问题是,当用户cd进入他们的共享主页时,他们会遇到Please enter password with the systemd-tty-ask-password-agent tool!翻墙问题。

我查看了该错误消息,似乎“解决方案”是用户需要在另一个终端会话中输入密码,这在我们的环境中是不可接受的。在与同事进行了一些实验并阅读了一些资料后,我们发现重新启动 autofs 服务两次会将密码提示带到当前控制台。但是,这进一步是不可接受的,因为每次密码提示(针对每个用户)时,autofs 都需要重新启动两次(我是否提到过这需要 sudo 访问权限?)。

抱歉介绍得这么长。我的问题是,在我们当前的设置中,是否有办法让该systemd-tty-ask-password-agent工具提示用户输入密码?在同一个终端会话中

答案1

我找到了解决方案/错误,将其留在这里以防其他人遇到这种情况。事实证明,错误出在 mount 命令中。正确的命令应该是automountInformation: -fstype=cifs,rw,username=<some-user>,password=<some-password>,uid=&,gid=<some-groupname> ://fileserver/share/&

实际情况是,当使用 LDAP 中的 autofs 时,如果您不提供 samba 共享的登录凭据,它会将该请求传递给您的客户端,而您的客户端只能以 root 身份应答。这就是systemd-tty-ask-password-agent --query普通用户无法访问的原因。

我最终的完整解决方案是创建一个专用用户,用于 samba 登录,并拥有 会员资格some-groupname。当 LDAP 用户尝试cd进入客户端上的共享时,uid将提供他们的权限,并自动挂载所请求的目录,同时应用他们的 unix 权限。

换句话说,usernamepassword参数用于 samba 身份验证,而 uid 和 gid 用于授权

相关内容