这里我使用的是 (文件共享服务) v4.9.1 + OPENldap(后端数据库软件) v2.4.44 + smbldap-tools(后端数据库管理软件) v0.9.11 + CentOS7。 如果有不同,可能会有部分问题。
注:
- samba 的功能不只有文件共享,还可以作为一台Windows域成员,甚至Windows域控制器。千万不要认为samba只是一个文件共享服务。
- 由于我们使用了samba的文件共享功能,与文件权限有直接的联系,所以samba中的使用的用户必须是Linux中能查询到。因为使用了 OPENldap 作为samba 的后端数据库,所以我们这里还需要配置Linux能查询到 OPENldap 中的用户信息,也就是需要配置 NSS。关于NSS部分的配置需要在smbldap-tools 初始化ldap数据库后完成NSS部分的配置,需要注意!!!
- samba 有使用PAM作为认证模块,和使用其自带的认证程序,在CentOS中编译时配置的是使用其自带的认证程序,所以PAM的配置可以省略。
- 如果想要配置OPENldap中的用户可以登入系统,可以查阅这篇文章:《》,其中的配置与本文中的配置并不相同,需要注意!!!
初始化配置
yum 源和网络配置省略。
配置OPENldap服务
这里只进行简单的服务配置,数据库配置这里会使用 smbldap-tools 进行配置,如果不知道OPENldap 可以去看看这篇文章:《OPENLDAP 服务搭建和后期管理》
这里将 OPENldap 所有配置清空,重新配置。
这里的配置文件我是从/usr/share/openldap-servers/slapd.ldif
中复制过来,并修改成如下这个样子的。主要修改了baseDN(suffix), OPENLDAPTLS,olcRootPW(密码由 slappasswd 生成,本文中的密码为: 123456) 和 include
根据配置生成服务器的配置文件
_#################### 100.00% eta none elapsed none fast!
Closing DB...
注:这里只配置了OPENldap中的服务配置部分,没有配置OPENldap 的数据库,这里再次强调以下。
配置 samba
这里只是为了测试使用samba 与 OPENldap 的使用,就不进行过于复杂的文件共享配置了,只共享一个用户的家目录仅供测试。
启动samba服务
smbldap-tools 配置
这里使用 smbldap-tools 来快速完成 samba 服务所需要的数据信息,同时通过 smblda-tools 来进行用户段管理。但是smbldap-tools 有一个缺点就是 不会管你本地用户是否有相同的 UID 或则 GID,可能有冲突,需要注意。
smbldap 会从 /etc/samba/smb.conf 读取部分信息,所以需要先配置好samba再配置 smbldap-tools 服务。
这里省略下面的配置过程,不知道的默认即可。
这里再创建一个用户用于后面的测试使用。
这里省略该用户的密码修改过程。
这样 OPENldap 的数据库初始化就完成了,这样就能去查询OPENldap 中的内容了。如下图,这个就是smbldap-populate
所创建的内容了。下图为 apache Directory Studio,有兴趣可以去研究一下《apache Directory Studio 简易使用》
在图中我们可以看到 UID = root 和 nobody 的用户,我并不想让这些特殊用户登入到服务器,所以在下面的配置,我会通过 fliter 将这2个用户过滤掉。
NSS 配置
这里的NSS配置主要就是需要配置,NSS 将 LDAP 的请求转发给 nslcd ,由 nslcd 来查询 OPENldap 中的用户信息。
首先配置 NSS ,只需添加 passwd 段和 group 段的ldap认证即可。
然后配置 nslcd, 注意 nslcd 是以daemon 形式运行的,主要配置后重启。
我们这里测试以下 NSS 的配置是否可用
User1:*:1001:513:System User:/var/smb/User1:/bin/bash
如上可见,我们配置的 NSS 和 OPENldap 服务 已经生效了,下面我们再来继续配置samba,使其可用。
samba 权限配置
如果看的比较仔细的人,就会发现我将用户的home 目录位置存放在了/var/smb
位置,主要是为了不与系统中的用户搞混。并且这样可以通过SELinux来隔离samba 禁止访问 /home
路径下的资源,详细请看下面操作。
这里我们也就可看到了,User1 用户已经可以登入并查询到共享目录了。
那么我们这里直接登入进去,上传一些文件做一些测试:
OK,那么这样一个samba 的文件共享就完成了。
总结
以上所述是小编给大家介绍的详解samba + OPENldap 搭建文件共享服务器问题,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
原文链接:https://www.cnblogs.com/somata/archive/2019/09/30/sambaAndOPENldapBuildFileShareServer.html