结合 NFS、Samba 服务器和来自 Active Directory 的用户

Bit*_*nce 8 active-directory nfs user-management samba

我想构建一个通过 SMB/CIFS 和 NFS 导出用户主目录的服务器。该服务器将加入保存我们用户数据库的 Win2k3 AD 域控制器。据我了解,winbind 将即时为这些用户发明 UID。此用户名-UID 映射需要可用于挂载主目录的 NFS 客户端,否则文件所有权将无法正确显示。

我认为这可以使用 SFU 来实现,但据我所知,SFU 已停产并且不会在最新版本的 Windows 上得到支持,所以我不想使用它。

我如何最好地将此映射提供给 NFS 客户端?

(你会认为这是一个常见的用例,但我找不到相关的方法。我的 Google-fu 可能很弱。)

编辑:顺便说一句,在这种情况下,用户是否可以在没有首先通过 SMB/CIFS 连接的情况下通过 NFS 进行连接?

Mik*_*fro 5

(编辑于2017-07-05)我现在一般建议使用sssd。留下下面的原始答案以供历史参考。我目前的 Ubuntu 笔记是:

apt-get install openssh-server sssd-ad realmd packagekit
realm -v join example.com --computer-ou="OU=someOU,DC=example,DC=com" --user=someuser
Run Code Online (Sandbox Code Playgroud)
  • /etc/sssd/sssd.conf,[sssd]部分中,添加default_domain_suffix = example.comfull_name_format = %1$s。在[domain/example.com]部分中,编辑fallback_homedir = /home/%d/%u并添加ignore_group_members = True. 对于较大的域,添加enumerate = false以防止 sssd 遍历整个 AD 寻找组成员身份(并将非缓存登录每次延迟一两分钟)。
  • 附加session required pam_mkhomedir.so skel=/etc/skel/ umask=0076在 的末尾/etc/pam.d/common-session。(或任何你想使用的umask)。
  • 使用重新启动sssd服务service sssd restart
  • 尝试在第二个文本或 GUI 控制台上登录,或者使用ssh localhost.

winbind默认情况下会在旧版本的 Samba 上组成 UID,或者必须引用 LDAP 存储来保持一切一致。这种情况已经有一段时间没有发生了(2004 年 11 月,如果我的信息正确的话)——idmap_rid是一个可以从 Active Directory RID(相对标识符,用户 SID 的一部分)生成 UID 的后端。

我在这里写下了将 Debian 系统绑定到现有 AD 中的配置—— 它使用 Puppet,但如果您只是通读它以了解 Samba 和 PAM 配置的起点,那么它应该适用于任何类似的 UNIX 系统。

请注意,我没有使用 SFU,也没有以任何方式修改 AD 架构。我想要的只是为我的用户提供一组一致的 UID。