samba + ldap.note

noteId: WEB4c986383bd647d50d0ae63893459ff61 · 原始路径:/ALL/Linux - A模块/服务配置/Samba、Samba AD域/samba + ldap.note · 图片:20 · 附件待处理:1

 
一、samba 连接ldap不加密端口:
 
先正常配置ldap
 
samba用户的密码和 ldap用户的密码是不同的,samba用户的密码是单独定义的一个属性
 
1、配置 samba:
apt install -y samba
 
mkdir -p /share/samba
vim /etc/samba/smb.conf
# 在末尾添加:
 
# 设置global属性:
vim /etc/samba/smb.conf
## 在 man smb.conf 中可以查询到:
 
最简化需要四条
只需要背 ldap ssl = no,其他都能抄
 
 
这里写完不要着急重启,重启会失败的,先完成下面的步骤
 
 
2、samba-tools 连接ldap:
这个类似 ldapscripts,用于创建ldap用户,它创建出来的用户,携带 objectClass: sambaSamAccount属性,只有携带这个属性的ldap用户,才能够登陆samba
 
apt install -y smbldap-tools 
 
导入操作必须在修改 slapd 数据库之前进行
# ldap 导入samba属性:
ldapadd -Q -Y EXTERNAL -H ldapi:/// -f /usr/share/doc/samba/examples/LDAP/samba.ldif
如果samba和ldap不在一台机,那么可以在ldap上按照 samba和 smbldap-tools 然后导入之后再删除
 
# 导入管理员密码:
## 该命令依赖于 /etc/samba/smb.conf 中的 ldap admin dn 属性(添加的是这个用户的密码)。
smbpasswd -W
 
 
cd /etc/smbldap-tools
cp /usr/share/doc/smbldap-tools/examples/smbldap.conf .
 
# 生成sid并输出到配置文件中:
## 该命令依赖于 /etc/samba/smb.conf 中的配置。
net getlocalsid >> smbldap.conf
## 可以用 net -h | grep sid 查找命令
 
vim /etc/smbldap-tools/smbldap.conf
 
 
cd /etc/smbldap-tools
cp /usr/share/doc/smbldap-tools/examples/smbldap_bind.conf .
 
vim smbldap_bind.conf
 
# 创建ldap对象:
smbldap-populate
 
3、创建 ldap用户:
#  创建ldap用户:
smbldap-useradd -a zhangsan -P
## 输入密码
这是这个工具创建出来的用户属性:
ldapsearch -x -H ldapi:/// -D "cn=admin,dc=devops,dc=com" -w Skill2024 -b "ou=users,dc=devops,dc=com" "(objectClass=inetOrgPerson)" "*" "+"
ldapsearch -x -b "dc=devops,dc=com"
可以将这些属性复制出去稍加修改使用ldapscripts创建,但是没有必要,还不如直接使用 smbldap-useradd 创建
 
创建出来的用户可以使用 pdbedit -L 进行查看:
pdbedit -L
 
4、samba 连接ldap:
# samba服务器上配置:
apt install -y nslcd
systemctl restart smbd //连接 ldap 后需要重启一下 smbd
 
 
·客户端连接测试:
smbclient //10.1.20.11/share -U zhangsan
 
 
5、将 ldap 用户转换为 samba用户:
假如已经创建有了 ldap用户,想要让它变成samba用户,能够在samba中登陆,非常简单,并且还能保留ldap属性
 
# 使用 smbldap 自带工具:
smbldap-usermod -a alice    //为ldap用户添加samba属性
smbldap-passwd -s alice    //设置samba密码
 
·smbldap 工具:
smbldap-useradd    //创建用户
 -a    //同时创建 samba用户(不加-a只创建ldap用户)
 -m    //创建home目录
 -P    //同时指定密码
 -g    //指定主要组
 -G    //指定附加组
 -u    //指定UID
 
smbldap-usermod    //修改已经存在的用户
 -a    //将LDAP用户转换为Samba用户(添加Samba属性)
 
smbldap-passwd    //不加参数时同时修改 LDAP/Samba 用户密码(在修改samba用户密码时,它必须有samba属性)
 -s    //只修改samba用户密码(必须有samba属性)
 -u    //只修改LDAP用户密码
 
 
·查看用户:
转换成功:
 
其他用户还是普通的属性,没有samba属性:
 
 
 
 
不要使用下面的方法用nslcd去连接,这样会导致很对问题,例如ldap用户本地登陆不了、邮件使用不了
·旧方式(不建议使用):
 
必须先用 nslcd连接上
# 本地必须先能读取到ldap的用户:
apt install -y nslcd
# getent passwd alice    //看是否能够读取到该用户
 
smbpasswd -a alice
 
 
6、如果要使用 @group 这样匹配 LDAP用户组:
# 最简单的方式就是安装 nslcd:
apt install -y nslcd
## getent group shenzhen 能够列出用户即成功
 
 
 
·如果要创建带有 smb属性,又带有 mail、等属性的用户(直接用上面转换的办法,先创建ldap用户,然后转换为samba用户即可:
 
·旧方式(不建议使用)
先使用 samba-tools先创建一个用户出来,然后将其全部复制,用它作为 ldapscripts的usertemp用户模板,然后再使用ldapscripts创建用户即可
当然这里有一个问题:如果不是使用smbldap-useradd 创建的samba用户,使用 pdbedit -L 是无法查看到的(尽管无法登录)
 
/etc/ldap/usertemp
 
vim /etc/ldapscripts/ldapscripts.conf
 
然后使用ldapscripts创建即可
 
# 此时创建出来的用户没有samba密码,需要指定:
smbldap-passwd <用户名>
# 输入密码
 
 
 
二、samba 连接ldaps:
 
按照上面的方式配置好之后,该samba配置文件,将连接方式改为ldaps
vim /etc/samba/smb.conf