- 安装samba:
yum install samba samba-client samba-swat
- 检查是否安装成功:
rpm -qa | grep samba
- samba文件配置
- 先将smb.conf备份,网上很多人都用rm,后面再建立个新文件
cp /etc/samba/smb.conf /etc/samba/smb2.conf
ls -laF /etc/samba/
- 创建目录文件, 并进行权限和安全相关设置, 将这个目录创建到了 /home/ 目录下
mkdir -p /home/data
# 创建文件夹,-P的作用为:如果文件路径不存在则创建路径chmod -R 0755 /home/data
# 改变文件权限为drwxr-xr-x,-R:改变指定目录及其下的所有子目录和文件的拥有者chown -R nobody:nobody /home/data
# 修改文件夹权限
- 对 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
[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 为准
- 检查配置文件的正确:要验证配置是否正确,请运行命令:
testparm
# 需要在samaba目录下,敲回车出2次确认 - 防火墙的处理
firewall-cmd --add-service=samba --zone=public --permanent
firewall-cmd --reload
如果提示防火墙未开启可通过以下命令开启
开启 firewalld 防火墙
systemctl start firewalld.service # 启用firewalld服务
systemctl enable firewalld.service # 开机启用firewalld服务
验证防火墙开启状态
systemctl status firewalld.service # 查看开启状态
- 启动并启用Samba服务
systemctl start smb
systemctl enable smb
- 确认smb服务是否正在运行
systemctl status smb
- 在Windows PC上,按Windows键+ R启动“运行”对话框,然后键入\samba主机名服务器 或 \服务器的IP地址