此问题与用作 Active Directory 域控制器时的 SAMBA 版本 4 相关。
我已完成允许域用户登录 Linux 的所有设置。但是,我已经搜索了很长时间,但找不到如何设置用户主目录和 shell。我/bin/false
现在才刚刚开始。我已经安装好了winbind
,libnss-winbind
并且libpam-winbind
可以正常工作 - 我可以登录,但是/bin/false
shell 并不完全有用!
我知道如何编辑idmap.ldb
,例如设置用户的 UID,并且我可以编辑sam.ldb
还可以编辑 其他属性。我有阿拉伯联合酋长国在加入 Samba 域的 Windows 机器上,这也有效。我已经尝试过,template homedir
但template shell
到目前为止smb.conf
没有任何效果。
我希望我错过了一些非常简单的事情,而且答案很明显,但我正在遭受痛苦谷歌无盲经过很多时间寻找答案。即使是 Samba 文档也无法做到这一点。
答案1
[global]
您可以在配置文件的部分中设置主目录和登录 shell 的默认值smb.conf
:
template shell = /bin/sh
template homedir = /home/%ACCOUNTNAME%
请注意,它是%ACCOUNTNAME%
而不是%U
Samba 3 的情况。同样,它是%WORKGROUP%
而不是%D
。我还发现对这些值的更改不会生效smbcontrol all reload-config
- 您必须重新启动 Samba 才能生效。
您应该能够将 RFC2307 属性添加到 LDAP 中的用户条目以指定每个用户的值,但这还不起作用。来自 桑巴维基:
目前 (4.1.11),具有 AD DC 角色的 Samba 服务器不使用标准 winbind 守护进程。这会导致 winbind 和 nss-winbind 仅获取 UID 和 GID,而不是登录 shell 和 home。 Samba 4.2 将提供使用标准 winbind 的可能性,从而规避此缺点。
因此,至少目前,我们仍坚持使用smb.conf
.