我有一个全新安装的 CentOS minimal,并且已按如下方式安装 Samba:
yum install krb5-workstation samba
首先,我是否已获得成为域成员所需的所有软件包?上述命令还会安装依赖项:
libtalloc libtdb samba-common samba-winbind samba-winbind-clients
在我的 smb.conf 中,有以下几行:
template shell = /bin/bash
template homedir = /home/%D/%U
我已加入到域中:
net ads join -U <admin>
我现在可以使用getent passwd
和查看 AD 用户以及本地用户,但所有 AD 帐户的 shell 均列为/bin/false
。不过,它们的主目录确实正确为/home/<DOMAIN>/<username>
。
什么原因导致了这种行为?目前所有 AD 用户在身份验证后都会被注销!
答案1
这取决于您使用的后端类型。顺序无关紧要,但只有当您使用模板驱动的后端(如 idmap_rid)时,您的模板才会被应用。
答案2
使用后testparm
我发现这是由于尝试将 Winbind 分隔符指定为\\
- 以尝试让它执行 Windows 使用的标准反斜杠。
由于 的解析smb.conf
,它被解释为行延续,因此分隔符后的行被视为该指令的结尾,因此被忽略!当首先放置模板 homedir 时,Samba 会忽略它,而当首先放置模板 shell 时,Samba 则会忽略该命令。
由于单个反斜杠是 Winbind 的默认分隔符,因此我删除了分隔符行,现在两个模板指令都可以正常工作。