Samba 用户映射.note
·作用
# username map作用:
把客户端登陆的用户名,映射成Samba内部的另一个用户名
例如Windows客户端用administrator登陆访问时,能够映射为 admin
多用于公共共享目录、简化权限控制、处理匿名访问
相当于别名,例如,将 test用户映射为smbuser用户,当客户端使用 test用户登陆时,实际上就是在登陆smbuser用户,必须输入正确smbuser用户的密码才能登陆成功,test用户不需要在samba本地真实存在,哪怕开启了匿名登陆也是这样
# force user作用:
不管是谁通过认证(包括匿名用户),最后访问文件、目录时都强制使用定义的这个用户,并且只能定义一个,不像username map可以定义映射成多个用户
# 区别:
username map可以定义多个,相当于改写用户名,将这个用户重定向为另一个用户进行认证(输入密码)
force user只能定义一个,在用户认证成功后,强制使用定义的这个用户进行读写文件(类似于强制修改属主、属组)1、配置username map:
1)映射指定用户:
adduser smbuser
adduser user1
smbpasswd -a smbuser
smbpasswd -a user1chmod 777 /share

# 配置用户映射:
vim /etc/samba/smb.conf
## 定义在 [global] 下:
# 定义映射文件:
vim /etc/samba/map
## 可以使用 @ 匹配一整个组的用户,例如:@group1
systemctl restart smbd
·测试:
登陆 test 用户(需要输入映射用户的密码,这里需要输入smbuser用户的密码):

上传文件:

去到 Samba上查看文件属主:

可以看到,我们用户 test用户登陆、上传的文件最终属主是定义的映射用户smbuser
2)映射匿名用户:
# 如果要映射匿名用户:
## 所有匿名用户默认会映射为 nobody/nogroup,如果要修改,就不需要使用用户映射,直接在配置文件中修改(在[global]下定义):
guest account = guest1 //guest1用户需要本地存在vim /etc/samba/smb.conf

systemctl restart smbd
测试:
客户端使用匿名用户登陆、上传文件:

然后去到samba服务器上查看:

可以看到文件属主为 guest1
3)将所有登陆用户映射为指定用户(包括匿名用户):
配置了这个之后将变相导致匿名用户无法登陆,因为所有匿名用户都被映射过去需要输入密码了
# 如果要将所有登陆用户名都映射为某个用户:
smbuser = *vim /etc/samba/map

systemctl restart smbd
2、配置 force user:
vim /etc/samba/smb.conf
·测试:
这里用匿名用户登陆进行登陆、文件上传测试:

