非常详细的 CentOS-8.3.2011-64版本 Samba 服务器的安装与配置方式
1. 环境准备
1、CentOS 8.3版本(64位)
2、虚拟机:VMware® Workstation 15 Pro 15.5.7 build-17171714
3、samba软件:samba-4.12.3-12.el8.3.x86_64
4、Windows版本:Windows10
2. 安装软件
2.1 准备工作
Windows 下:
确保 Windows 和 Linux 系统在同一工作组中。因此,转到Windows PC并启动命令提示符。输入命令:
net config workstation
C:\Users\Administrator>net config workstation 计算机名 \\ZHIYUAN-SUO 计算机全名 zhiyuan-suo 用户名 Administrator 工作站正运行于 NetBT_Tcpip_{218C6515-99FF-4131-9F4F-8582F6472E24} (005056C00001) NetBT_Tcpip_{3A06D971-EF0B-4FE6-BEC0-B8B0B1629F9D} (005056C00008) NetBT_Tcpip_{90D9EB6B-F732-438C-9295-09D71CC6A08C} (38D547AAD0E9) 软件版本 Windows 10 Pro 工作站域 WorkGroup 登录域 ZHIYUAN-SUO COM 打开超时 (秒) 0 COM 发送计数 (字节) 32 COM 发送超时 (毫秒) 250 命令成功完成。
从输出中我们可以清楚地看到工作站域指向' WORKGROUP '。稍后将在Linux机器上对其进行配置。
2.2 安装samba:
root用户:
yum install samba samba-client samba-swat
或
sudo dnf install samba samba-common samba-client
如果已安装会显示:
[root@My-Linux-CentOS-8 suozhiyuan]# sudo dnf install samba samba-common samba-client 上次元数据过期检查:1:57:08 前,执行于 2021年01月14日 星期四 08时39分07秒。 软件包 samba-4.12.3-12.el8.3.x86_64 已安装。 软件包 samba-common-4.12.3-12.el8.3.noarch 已安装。 软件包 samba-client-4.12.3-12.el8.3.x86_64 已安装。 依赖关系解决。 无需任何处理。 完毕!
如果未安装会显示:
[root@localhost init.d]# yum install samba samba-client samba-swat 上次元数据过期检查:0:25:25 前,执行于 2021年01月13日 星期三 23时56分55秒。 依赖关系解决。 ================================================================================================================== 软件包 架构 版本 仓库 大小 ================================================================================================================== 安装: samba x86_64 4.12.3-12.el8.3 baseos 840 k samba-client x86_64 4.12.3-12.el8.3 baseos 692 k 安装依赖关系: samba-common-tools x86_64 4.12.3-12.el8.3 baseos 484 k samba-libs x86_64 4.12.3-12.el8.3 baseos 188 k 事务概要 ===================================================================================================================
安装 4 软件包
总下载:2.2 M
安装大小:6.3 M
确定吗?[y/N]:
下载软件包: (1/4): samba-client-4.12.3-12.el8.3.x86_64.rpm 2.2 MB/s | (2/4): samba-common-tools-4.12.3-12.el8.3.x86_64.rpm 1.3 MB/s | (3/4): samba-4.12.3-12.el8.3.x86_64.rpm 2.0 MB/s | (4/4): samba-libs-4.12.3-12.el8.3.x86_64.rpm 69 kB/s | -------------------------------------------------------------------------------------------------------------------- 总计 313 kB/s | 警告:/var/cache/dnf/baseos-929b586ef1f72f69/packages/samba-4.12.3-12.el8.3.x86_64.rpm: 头V3 RSA/SHA256 Signature,
密钥 ID 88888888: NOKEY CentOS Linux 8 - BaseOS 1.6 MB/s | 导入 GPG 公钥 88888888: Userid: "CentOS (CentOS Official Signing Key) <security@centos.org>" 指纹: 8888 70FA 8888 8888 7FB6 8888 05B5 55B3 8483 8888 来自: /etc/pki/rpm-gpg/ABC-DEF-GHI-centosofficial 确定吗?[y/N]:
安装完成后会显示:
导入公钥成功 运行事务检查 事务检查成功。 运行事务测试 事务测试成功。 运行事务 准备中 : 1/1 安装 : samba-libs-4.12.3-12.el8.3.x86_64 1/4 安装 : samba-common-tools-4.12.3-12.el8.3.x86_64 2/4 安装 : samba-4.12.3-12.el8.3.x86_64 3/4 运行脚本: samba-4.12.3-12.el8.3.x86_64 3/4 安装 : samba-client-4.12.3-12.el8.3.x86_64 4/4 运行脚本: samba-client-4.12.3-12.el8.3.x86_64 4/4 验证 : samba-4.12.3-12.el8.3.x86_64 1/4 验证 : samba-client-4.12.3-12.el8.3.x86_64 2/4 验证 : samba-common-tools-4.12.3-12.el8.3.x86_64 3/4 验证 : samba-libs-4.12.3-12.el8.3.x86_64 4/4 Installed products updated. 已安装: samba-4.12.3-12.el8.3.x86_64 samba-client-4.12.3-12.el8.3.x86_64
samba-common-tools-4.12.3-12.el8.3.x86_64 samba-libs-4.12.3-12.el8.3.x86_64 完毕!
2.3 检查是否安装成功
rpm -qa | grep samba
如果显示以下信息, 为安装成功
[root@localhost init.d]# rpm -qa | grep samba samba-4.12.3-12.el8.3.x86_64 samba-common-4.12.3-12.el8.3.noarch samba-client-4.12.3-12.el8.3.x86_64 samba-client-libs-4.12.3-12.el8.3.x86_64 samba-libs-4.12.3-12.el8.3.x86_64 samba-common-tools-4.12.3-12.el8.3.x86_64 samba-common-libs-4.12.3-12.el8.3.x86_64
2.4 samba文件配置
2.4.1 先将smb.conf备份,网上很多人都用rm,后面再建立个新文件,我习惯用cp命令额外拷贝
[root@My-Linux-CentOS-8 /]# cp etc/samba/smb.conf etc/samba/smb2.conf [root@My-Linux-CentOS-8 /]# ls -laF etc/samba/ 总用量 36 drwxr-xr-x. 2 root root 78 1月 14 10:48 ./ drwxr-xr-x. 154 root root 8192 1月 13 10:50 ../ -rw-r--r--. 1 root root 20 8月 18 04:50 lmhosts -rw-r--r--. 1 root root 706 1月 14 10:48 smb2.conf -rw-r--r--. 1 root root 706 8月 18 04:50 smb.conf -rw-r--r--. 1 root root 11327 8月 18 04:50 smb.conf.example
2.4.2 创建目录文件, 并进行权限和安全相关设置, 我将这个目录创建到了 /home/ 目录下
mkdir -p /home/data # 创建文件夹,-P的作用为:如果文件路径不存在则创建路径
chmod -R 0755 /home/data # 改变文件权限为drwxr-xr-x,-R:改变指定目录及其下的所有子目录和文件的拥有者
chown -R nobody:nobody /home/data # 修改文件夹权限
2.4.3 对 samba 配置文件 smb.conf 进行配置
vim /etc/samba/smb.conf # 打开配置文件
删除所有内容,写入以下配置:
[global] workgroup = WORKGROUP server string = Samba Server %v netbios name = MySambaServer security = user map to guest = bad user dns proxy = no [data] path = /home/data/ browsable =yes writable = yes guest ok = yes read only = no
保存并关闭配置文件。
smb.conf 中增加的配置内容解释:
[global]
workgroup = WORKGROUP # 设定 SambaServer 所要加入的工作组或者域,需要与 Windows 工作组一致
server string = Samba Server %v # 设定 SambaServer 的注释,可以是任何字符串,也可以不填。宏%v表示显示Samba的版本号
netbios name = centos-8 # 设置 SambaServer 的 NetBIOS 名称。如果不填则默认会使用该服务器的DNS名称的第一部分。netbios name和workgroup名字不要设置成一样了
security = user # 设置用户访问 SambaServer 的验证方式,一共有四种验证方式
# 1. share:用户访问 SambaServer 不需要提供用户名和口令, 安全性能较低。
# 2. user:SambaServer 共享目录只能被授权的用户访问,由 SambaServer 负责检查账号和密码的正确性。账号和密码要在本 SambaServer
中建立。
# 3. server:依靠其他Windows NT/2000或Samba Server来验证用户的账号和密码,是一种代理验证。此种安全模式下,系统管理员可以把所有的
Windows用户和口令集中到一个NT系统上,使用Windows NT进行Samba认证, 远程服务器可以自动认证全部用户和口令,如果认证失败,Samba将使用
用户级安全模式作为替代的方式。
# 4. domain:域安全级别,使用主域控制器(PDC)来完成认证。
map to guest = bad user # 将匿名用户映射为nobody用户,这个是Samba4.0之前版本的 security=share,4.0之后改成了 security 和 map to guest
dns proxy = no # 设置 SambaServer 是否开启dns代理服务
[Anonymous] # 共享文件夹配置 windows 显示 “Anonymous” 文件名
path = /srv/samba/shared # centos 服务器中,共享目录路径
# path用来指定共享目录的路径。可以用%u、%m这样的宏来代替路径里的unix用户和客户机的Netbios名,用宏表示主要用于[homes]共享域。
例如:如果我们不打算用home段做为客户的共享,而是在/home/share/下为每个Linux用户以他的用户名建个目录,作为他的共享目录,
这样path就可以写成:path = /home/share/%u; 。用户在连接到这共享时具体的路径会被他的用户名代替,要注意这个用户名路径一定
要存在,否则,客户机在访问时会找不到网络路径。同样,如果我们不是以用户来划分目录,而是以客户机来划分目录,为网络上每台可以访问
samba的机器都各自建个以它的netbios名的路径,作为不同机器的共享资源,就可以这样写:path = /home/share/%m
browsable =yes # 允许该目录被显示在系统资源中
writable = yes # 用来指定该共享路径是否可写,是否是只读,如果有read only的配置,二者冲突会以 writable 为准
guest ok = yes # 意义同“public”,公开共享,若为否则进行身份验证(只有当security = share 时此项才起作用)
read only = no # 以只读方式共享,当与 writable 发生冲突时以 writable 为准
2.4.4 检查配置文件的正确
要验证配置是否正确,请运行命令: testparm
配置正确显示:
[root@My-Linux-CentOS-8 samba]# testparm Load smb config files from /etc/samba/smb.conf Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions
敲回车出2次确认
# Global parameters [global] dns proxy = No map to guest = Bad User netbios name = CENTOS-8 security = USER server string = Samba Server %v idmap config * : backend = tdb [Anonymous] guest ok = Yes path = /home/suozhiyuan read only = No [root@My-Linux-CentOS-8 samba]#
2.5 防火墙的处理
此处建议不关闭防火墙,而允许 Samba 穿越防火墙,以便外部用户可以访问 Samba 共享。
firewall-cmd --add-service=samba --zone=public --permanent firewall-cmd --reload
操作成功提示:
[root@My-Linux-CentOS-8 samba]# firewall-cmd --add-service=samba --zone=public --permanent success [root@My-Linux-CentOS-8 samba]# firewall-cmd --reload success
如果提示防火墙未开启可通过以下命令开启
开启 firewalld 防火墙
systemctl start firewalld.service # 启用firewalld服务 systemctl enable firewalld.service # 开机启用firewalld服务
验证防火墙开启状态
systemctl status firewalld.service # 查看开启状态
2.6 启动并启用Samba服务
systemctl start smb
systemctl enable smb
确认smb服务是否正在运行
systemctl status smb
成功启动打印内容:
[root@My-Linux-CentOS-8 samba]# systemctl start smb # 启动 Samba 服务 [root@My-Linux-CentOS-8 samba]# systemctl enable smb # 启用 Samba 服务 Created symlink /etc/systemd/system/multi-user.target.wants/smb.service → /usr/lib/systemd/system/smb.service. [root@My-Linux-CentOS-8 samba]# systemctl status smb # 查看 Samba 是否运行 ● smb.service - Samba SMB Daemon Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2021-01-14 18:23:29 CST; 1min 42s ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Main PID: 35790 (smbd) Status: "smbd: ready to serve connections..." Tasks: 4 (limit: 11067) Memory: 28.0M CGroup: /system.slice/smb.service ├─35790 /usr/sbin/smbd --foreground --no-process-group ├─35792 /usr/sbin/smbd --foreground --no-process-group ├─35793 /usr/sbin/smbd --foreground --no-process-group └─35794 /usr/sbin/smbd --foreground --no-process-group 1月 14 18:23:27 My-Linux-CentOS-8.3.2011-001 systemd[1]: Starting Samba SMB Daemon... 1月 14 18:23:29 My-Linux-CentOS-8.3.2011-001 smbd[35790]: [2021/01/14 18:23:29.429616, 0] ../../lib/util/become_daemon.c:136(daemon_ready) 1月 14 18:23:29 My-Linux-CentOS-8.3.2011-001 systemd[1]: Started Samba SMB Daemon. 1月 14 18:23:29 My-Linux-CentOS-8.3.2011-001 smbd[35790]: daemon_ready: daemon 'smbd' finished starting up and ready to serve connections
2.7 启动并启用nmb服务
sudo systemctl start nmb
sudo systemctl enable nmb
确认nmb服务是否正在运行
systemctl status nmb
成功启用打印内容
[root@My-Linux-CentOS-8 samba]# sudo systemctl start nmb [root@My-Linux-CentOS-8 samba]# sudo systemctl enable nmb Created symlink /etc/systemd/system/multi-user.target.wants/nmb.service → /usr/lib/systemd/system/nmb.service. [root@My-Linux-CentOS-8 samba]# systemctl status nmb ● nmb.service - Samba NMB Daemon Loaded: loaded (/usr/lib/systemd/system/nmb.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2021-01-14 18:36:00 CST; 13s ago Docs: man:nmbd(8) man:samba(7) man:smb.conf(5) Main PID: 36019 (nmbd) Status: "nmbd: ready to serve connections..." Tasks: 1 (limit: 11067) Memory: 3.5M CGroup: /system.slice/nmb.service └─36019 /usr/sbin/nmbd --foreground --no-process-group 1月 14 18:36:00 My-Linux-CentOS-8.3.2011-001 systemd[1]: Starting Samba NMB Daemon... 1月 14 18:36:00 My-Linux-CentOS-8.3.2011-001 systemd[1]: Started Samba NMB Daemon. 1月 14 18:36:00 My-Linux-CentOS-8.3.2011-001 nmbd[36019]: [2021/01/14 18:36:00.373202, 0] ../../lib/util/become_daemon.c:136(daemon_ready) 1月 14 18:36:00 My-Linux-CentOS-8.3.2011-001 nmbd[36019]: daemon_ready: daemon 'nmbd' finished starting up and ready to serve connections
3. 从 Windows 机器访问 Samba 共享
在Windows PC上,按Windows键+ R启动“运行”对话框,然后键入
\\samba主机名服务器 或 \\服务器的IP地址
红框处就是samba主机名服务器
====================================================================================================================================