纪念:站主于 2020 年 7 月完成了此开源实验,并将过程中的所有命令经过整理和注释以后,形成以下教程
步骤目录:
步骤一:规划拓扑
1.1 服务器列表
1.2 服务器列表简介
步骤二:系统环境要求
步骤三:在服务端上安装 Samba 服务
步骤四:在服务端上配置 Samba 服务
4.1 在服务端上配置 Samba 服务文件
4.2 在服务端上生成 Samba 服务共享用户
4.2.1 在服务端上生成 Samba 服务共享用户
4.2.2 在服务端上给 Samba 服务共享用户设置系统密码
4.2.3 在服务端上给 Samba 服务共享用户设置 Samba 共享密码
4.2.4 显示 Samba 服务共享用户是否可用
4.3 在服务端上生成 Samba 服务共享目录
4.3.1 在服务端上生成 Samba 服务共享目录
4.3.2 在服务端上给 Samba 服务共享目录设置权限
4.3.3 在服务端上给 Samba 服务共享目录设置所属主和所属组
4.3.4 在服务端上给 Samba 服务共享目录设置 selinux 标签
4.3.5 在服务端上让 Samba 服务共享目录上的 selinux 标签立刻生效
步骤五:启动 Samba 服务并设置为开机自动启动
步骤六:客户端使用服务端 Samba 服务
6.1 在客户端上安装 Samba 客户端软件
6.2 在客户端上测试服务端的 Samba 服务
6.3 在客户端上挂载服务端的 Samba 目录
6.3.1 手动挂载的方法
6.3.2 自动挂载的方法
具体的操作步骤:
步骤一:规划拓扑
1.1 服务器列表
服务端 192.168.101.41
客户端 192.168.101.42
1.2 服务器列表简介
1) 服务器提供 Samba 服务将自己的目录分享
2) 客户端挂载和使用 Samba 服务将服务端分享的目录挂载在自己的目录上
步骤二:系统环境要求
1) 所有服务器的系统都需要是 CentOS 8 版本
2) 所有服务器都要关闭防火墙
3) 所有服务器都要打开 SELinux
4) 所有服务器系统都要配置好可用的软件源
5) 需要按照拓扑图给对应的服务器配置好 IP 地址和主机名
6) 所有服务器都要可以相互 ping 通自己和对方的 IP 地址和主机名
步骤三:在服务端上安装 Samba 服务
(只在服务端上执行以下步骤)
# yum -y install samba
步骤四:在服务端上配置 Samba 服务
4.1 在服务端上配置 Samba 服务文件
(只在服务端上执行以下步骤)
# vim /etc/samba/smb.conf
将全部内容修改如下:
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.
[global]
workgroup = WORKGROUP
realm = zhumingyu
netbios name = zhumingyu
#encrypt passwords = yes
map to guest = NEVER
security = user
password server = *
name resolve order = bcast host
restrict anonymous = 2
#null passwords = no
#guest account = smb_nobody
#use spnego = yes
client use spnego = yes
server string = ""
host msdfs = no
msdfs root = no
domain master = no
preferred master = no
local master = no
os level = 0
browse list = no
browseable = no
dns proxy = no
wide links = no
public= no
guest ok = no
hosts deny = ALL EXCEPT 192.168.101.42
[sharetest]
valid users = zhumingyu
write list = zhumingyu
read list = zhumingyu
path = /share
guest ok = no
read only = no
browseable = no
writable = yes
public = no
create mask = 0755
directory mask = 0755
(
补充:
1) 这里的 workgroup = WORKGROUP 是让 Samba 服务属于 WORKGROUP
2) 这里的 hosts deny = ALL EXCEPT 192.168.101.42 是只让客户端 192.168.101.42 能够访问服务端的 Samba
3) 这里的 sharetest 是这个 Samba 挂载点的名称,挂载这个挂载点的格式就是://192.168.101.41/sharetest
4) 这里的 valid users = zhumingyu 是 Samba 服务共享用户需要手动生成,如果换成让所有的服务共享用户都可以使用则可以写成 valid users = @users
5) 这里的 path = /share 是 Samba 服务共享目录需要手动生成
)
4.2 在服务端上生成 Samba 服务共享用户
4.2.1 在服务端上生成 Samba 服务共享用户
(只在服务端上执行以下步骤)
# useradd zhumingyu
4.2.2 在服务端上给 Samba 服务共享用户设置系统密码
(只在服务端上执行以下步骤)
# passwd zhumingyu
4.2.3 在服务端上给 Samba 服务共享用户设置 Samba 共享密码
(只在服务端上执行以下步骤)
# smbpasswd -a zhumingyu
4.2.4 显示Samba 服务共享用户是否可用
(只在服务端上执行以下步骤)
# pdbedit -L
4.3 在服务端上生成 Samba 服务共享目录
4.3.1 在服务端上生成 Samba 服务共享目录
(只在服务端上执行以下步骤)
# mkdir /share
4.3.2 在服务端上给 Samba 服务共享目录设置权限
(只在服务端上执行以下步骤)
# chmod 755 /share/
4.3.3 在服务端上给 Samba 服务共享目录设置所属主和所属组
(只在服务端上执行以下步骤)
# chown zhumingyu:zhumingyu /share/
4.3.4 在服务端上给 Samba 服务共享目录设置 SELinux 标签
(只在服务端上执行以下步骤)
# semanage fcontext -a -t samba_share_t '/share(/.*)?'
4.3.5 在服务端上让 Samba 服务共享目录上的 SELinux 标签立刻生效
(只在服务端上执行以下步骤)
# restorecon -RFvv /share/
步骤五:启动 Samba 服务并设置为开机自动启动
(只在服务端上执行以下步骤)
# systemctl enable --now smb
步骤六:客户端使用服务端 Samba 服务
6.1 在客户端上安装 Samba 客户端软件
(只在客户端上执行以下步骤)
# yum -y install samba-client cifs-utils
6.2 在客户端上测试服务端的 Samba 服务
(只在客户端上执行以下步骤)
# smbclient --user=zhumingyu -L //192.168.101.41
或者:
# smbclient //192.168.101.41/sharetest -U zhumingyu
smb: \> ls
smb: \> exit
6.3 在客户端上挂载服务端的 Samba 目录
6.3.1 手动挂载的方法
(只在客户端上执行以下步骤)
# mount -t cifs -o username=zhumingyu,password=1,sec=ntlmssp //192.168.101.41/sharetest /tmp
6.3.2 自动挂载的方法
(只在客户端上执行以下步骤)
# vim /etc/fstable
添加以下内容:
......
# //192.168.101.41/sharetest /tmp cifs defaults,rw,username=zhumingyu,password=1 0 0