我安装了samba并使它成为一个简单的域控制器,我打算将它设置为通过OpenLDAP进行身份验证。问题是我不能同时运行 slapd 和 samba 进程。
如果我一开始运行 Samba(samba 将运行并正常工作),然后再运行 slapd,slapd 将无法运行,它告诉我该端口正在使用,我无法使用它。
slapd 启动进程输出:
root@linuxserver:/home/mohammed# /etc/init.d/slapd status ● slapd.service - LSB:OpenLDAP 独立服务器(轻量级目录访问协议) Loaded:已加载(/etc/init.d/slapd) Active:失败(结果:退出代码)自 2016 年 2 月 17 日星期三 11:31:36 CET 起;41 秒前 文档:man:systemd-sysv-generator(8) 进程:10297 ExecStop=/etc/init.d/slapd stop (code=exited, status=0/SUCCESS)
进程:10697 ExecStart=/etc/init.d /slapd 开始(代码=退出,状态=1/失败)Feb 17 11:31:36 linuxserver.example.local slapd[10701]: @(#) $OpenLDAP: slapd (Ubuntu) (Sep 15 21:34:22) $ buildd@lgw01-27:/build/openldap- cOgeXt/openldap-2.4.41+dfsg/debian/build/servers/slapd 2 月 17 日 11:31:36 linuxserver.example.local slapd[10701]: daemon: bind(9) failed errno=98 (地址已经在使用中) 2 月 17 日 11:31:36 linuxserver.example.local slapd[10701]:守护进程:bind(9) 失败 errno=98(地址已在使用中)2 月 17 日 11:31:36 linuxserver.example.local slapd[10701]:巴掌停了下来。2 月 17 日 11:31:36 linuxserver.example.local slapd[10701]:connections_destroy:没有什么可破坏的。2 月 17 日 11:31:36 linuxserver.example.local systemd[1]:slapd.service:控制进程退出,代码=退出状态=1 2 月 17 日 11:31:36 linuxserver.example.local systemd[1]:无法启动 LSB:OpenLDAP 独立服务器(轻量级目录访问协议)。2 月 17 日 11:31:36 linuxserver.example.local systemd[1]: slapd.service: 单元进入失败状态。2 月 17 日 11:31:36 linuxserver.example.local systemd[1]:slapd.service:失败,结果为“退出代码”。2 月 17 日 11:31:36 linuxserver.example.local slapd[10697]: ...失败!
如果我做了相反的事情,所以如果我首先运行 slapd(它将正确运行),然后运行下一个 samba,samba 将无法工作,因为它表明端口出现问题,我无法使用它。
samba 启动进程输出:
root@linuxserver:/home/mohammed# /etc/init.d/samba 状态 ● samba-ad-dc.service - LSB:为 AD DC 启动 Samba 守护程序
Loaded:已加载 (/etc/init.d/samba-ad -dc) 活动:自 2016 年 2 月 17 日星期三 CET 11:38:03 起活动(运行);3 秒前 文档:man:systemd-sysv-generator(8) 进程:10774 ExecStop=/etc/init.d/samba-ad-dc stop (code=exited, status=0/SUCCESS) 进程:11026 ExecStart=/etc /init.d/samba-ad-dc start (code=exited, status=0/SUCCESS) CGroup: /system.slice/samba-ad-dc.service ├─11055 /usr/sbin/samba -D ├─11058 /usr/sbin/smbd -D --option=服务器角色检查:inhibit=yes --foreground └─11071 /usr/sbin/smbd -D --option=服务器角色检查:inhibit=yes --foreground2 月 17 日 11:38:05 linuxserver.example.local samba[11060]: [2016/02/17 11:38:05.303292, 0] ../source4/smbd/service_stream.c:346(stream_setup_socket) 2 月 17 日 11 日: 38:05 linuxserver.example.local samba[11060]:无法在 ::1:389 上监听 - NT_STATUS_ADDRESS_ALREADY_ASSOCIATED 2 月 17 日 11:38:05 linuxserver.example.local samba[11060]:[2016/02/17 11:38 :05.303771, 0] ../source4/ldap_server/ldap_server.c:821(add_socket) 2 月 17 日 11:38:05 linuxserver.example.local samba[11060]: ldapsrv 无法绑定到 ::1:389 - NT_STATUS_ADDRESS_ALREADY_ASSOCIATED 17 11:38:05 linuxserver.example.local samba[11060]: [2016/02/17 11:38:05.304082, 0] ../source4/smbd/service_task.c:35(task_server_terminate) 2 月 17 日 11:38 :05 linuxserver.example.local samba[11060]:
task_server_terminate: [Failed to startup ldap server task] Feb 17 11:38:05 linuxserver.example.local samba[11037]: STATUS=daemon 'samba' 已完成启动并准备好提供连接samba_terminate: t...rver 任务失败17 11:38:06 linuxserver.example.local smbd[11058]: [2016/02/17 11:38:06.082490, 0] ../lib/util/become_daemon.c:136(daemon_ready) 2 月 17 日 11:38 :06 linuxserver.example.local smbd[11072]: STATUS=daemon 'smbd' 已完成启动并准备好提供连接无法连接到 CUPS s...escriptor 2 月 17 日 11:38:06 linuxserver.example.local smbd[11071 ]:
STATUS=daemon 'smbd' 已完成启动并准备服务连接未能检索打印机...UCCESSFUL 提示:有些行已省略,使用-l 完整显示。
这是我的 smb.conf:
[global]
workgroup = EXAMPLE
realm = EXAMPLE.LOCAL
netbios name = LINUXSERVER
server role = active directory domain controller
dns forwarder = 8.8.8.8
idmap_ldb:use rfc2307 = yes
[netlogon]
path = /var/lib/samba/sysvol/example.local/scripts
read only = No
[sysvol]
path = /var/lib/samba/sysvol
read only = No
有人可以帮我解决这个问题吗?提前致谢。
你在你的问题中得到了正确的答案(它甚至是粗体)
Samba4 是一个 LDAP 服务器,所以它当然要和 OpenLDAP 使用相同的端口。
如果您打算让 Samba 针对 OpenLDAP 进行身份验证,则不能将其配置为域控制器。
尽管网络上有很多教程,但获取设置/安装信息的最佳位置是 Samba wiki。 如果您设置了 Samba Active Directory 域控制器,其他应用程序可以使用 LDAP 对其进行身份验证 - Samba DC 也是 LDAP 服务器。
正如您的日志所说,两个服务都希望绑定到端口 389。Samba
4 作为 DC,包含并运行内置 LDAP 服务器。
如果您想在同一主机上同时运行 samba 4 DC 和 slapd 服务器,则需要将它们放在不同的 IP 地址上。更改端口不是一种选择,因为它会破坏所有客户端。