1. Samba服务安装
1.1 服务安装
yum install samba
1.2 防火墙放行samba服务
firewall-cmd --add-service=samba --permanent
firewall-cmd --reload
setenforce 0
1.3 启动samba服务
systemctl start smb
2. 服务配置一:用户级别身份验证
启用用户级身份验证(security = user)
[global]
security = user
强制要求:必须通过
smbpasswd
创建Samba用户
验证流程:客户端需提供Samba账户密码(与系统密码独立存储)
2.1 创建系统用户
useradd sambauser
# 添加为Samba用户并设置密码
smbpasswd -a sambauser
2.2 创建共享目录
创建名为 smbShare
的共享目录:
mkdir /sambaShare
# 添加测试文件
echo "This is test file" > /sambaShare/testfile.txt
2.3 添加自定义共享段
编辑 vim /etc/samba/smb.conf
配置文件,在最后添加自定义的共享段
[smb_share] # 共享名称(可自定义)
comment = Samba Share Directory # 共享描述
path = /sambaShare # 共享目录
browseable = yes # 在共享列表中显示
writeable = yes # 允许用户写入
valid users = sambauser # 仅允许匹配用户访问
保存后,检查配置文件有效性:
testparm -s /etc/samba/smb.conf
最后重启samba服务:
systemctl restart smb
2.4 客户端测试
- Linux 客户端测试
安装 smbclient
客户端连接工具:apt install smbclient
或 yum install samba-client
查看可用共享列表:
smbclient -L 192.168.66.26 -U sambauser
Linux挂载测试:
mount -t cifs -o username=sambauser //192.168.66.26/smb_share /mnt
如果出现
bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program.
类似这种报错提示,尝试安装apt install cifs-utils
- Windows 客户端测试
资源管理器地址栏输入:\\192.168.66.26
输入用户名和密码,选择对于的共享目录即可。
3. 服务配置二:多用户访问
配置二:进行多用户访问samba,并且自动访问不同用户的家目录下的共享资源;
3.1 创建系统用户
useradd user1
useradd user2
# 添加为Samba用户并设置密码
smbpasswd -a user1
smbpasswd -a user2
3.2 修改配置文件
编辑 vim /etc/samba/smb.conf
配置文件,修改内容如下:
[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes
writable = yes # 添加允许用户写入权限
其他字段不需要改,只改动 [homes] 字段即可(前面添加的自定义共享段也可以删掉)
配置验证:
sudo testparm # 检查配置文件语法
重启samba服务:
systemctl restart smb
3.3 客户端测试
- Linux客户端
smbclient -L 192.168.66.26 -U user1
尝试挂载:
mount -t cifs //192.168.66.26/user1 /mnt -o username=user1
- Windows客户端
文件资源管理器地址栏输入:\\192.168.66.26\user1
输入用户名密码后即可访问 。
错误提示:
如果出现如图所示的错误提示,打开 cmd
命令行,输入:net use
输入 net use \\192.168.66.26\user1 /delete
像这样删除前面访问过的远程记录即可。
4. 服务配置三:别名用户访问
配置三:创建别名用户,并设置添加该用户多个别名,进行访问。
4.1 创建别名用户
useradd aliasUser
# 添加Samba别名用户并设置密码
smbpasswd -a aliasUser
4.2 创建用户映射文件
编辑 vim /etc/samba/smbusers
添加如下内容:
# 格式:系统用户名 = 别名1 别名2 ...
aliasUser = zhangsan lisi wangwu
4.3 修改配置文件
编辑 vim /etc/samba/smb.conf
,在 [global]
字段区添加一个 username map
信息:
[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw
username map = /etc/samba/smbusers # 启用用户名映射
添加自定义共享段信息:
[user_share]
comment = Alias User Share
path = /opt/userShare
browseable = yes
writable = yes
valid users = aliasUser
创建共享目录:
mkdir -p /opt/userShare/
# 授权给 aliasUser 用户
chown aliasUser /opt/userShare/
重启samba服务:
systemctl restart smb
4.4 客户端测试
- Linux客户端
smbclient -L 192.168.66.26 -U zhangsan
挂载测试:
mount -t cifs //192.168.66.26/user_share /mnt -o username=zhangsan
- Windows客户端
文件资源管理器地址栏输入:\\192.168.66.26\user_share
输入别名用户和密码后即可访问 。