Samba简介
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享。
安装前准备:
- 关闭防火墙和SELINUX
centos7:centos7关闭防火墙和selinux
安装samba服务:
- 使用yum安装samba
yum install samba samba-client samba-common -y
#安装完成,查看安装包
rpm -qa | grep samba
#各个软件的说明
samba-common-libs-4.10.4-11.el7_8.x86_64
samba-client-4.10.4-11.el7_8.x86_64 #客户端软件,主要提供linux主机作为客户端时,所需要的工具指令集
samba-common-4.10.4-11.el7_8.noarch #主要提供samba服务器的设置文件与设置文件语法检验程序testparm
samba-client-libs-4.10.4-11.el7_8.x86_64
samba-libs-4.10.4-11.el7_8.x86_64
samba-4.10.4-11.el7_8.x86_64 #服务器端软件,主要提供samba服务器的守护程序,共享文档,日志的轮替,开机默认选项
samba-common-tools-4.10.4-11.el7_8.x86_64
samba-swat #基于https协议的samba服务器web配置界面(选择安装)
- 配置samba服务
mv /etc/samba/smb.conf /etc/samba/smb.conf.bak #备份已有配置
vim /etc/samba/smb.conf #添加新的配置
在smb.conf输入以下内容:
#======================= Global Settings =====================================
[global]
# ----------------------- Network Related Options -------------------------
#
# workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH
#
# server string is the equivalent of the NT Description field
#
# netbios name can be used to specify a server name not tied to the hostname
workgroup = WORKGROUP
server string = Liuyunsheng Samba Server Version %v
netbios name = Liuyunsheng-Samba
# --------------------------- Logging Options -----------------------------
#
# Log File let you specify where to put logs and how to split them up.
log file = /var/log/samba/log.%m
# ----------------------- Standalone Server Options ------------------------
#
# Scurity can be set to user, share(deprecated) or server(deprecated)
security = user
map to guest = Bad User
#============================ Share Definitions ==============================
[public]
comment = Public Stuff
path = /home/test/test
writeable = yes
public = yes
#============ Global Settings[全局选项] =================
[global]
workgroup = WORKGROUP #设定Samba Server所要加入的工作组或域
server string = Samba Server %v #设定注释,宏%v表示显示Samba的版本号
netbios name = centos #设置Samba Server的NetBIOS名称
map to guest = bad user #开启匿名访问
#dns proxy = no
# ----------------- Logging Options [日志选项]-----------------------------
log file = /var/log/samba/log.%m #设置日志文件存储位置及名称,宏%m(主机名),表示对每台访问Samba Server的机器都单独记录一个日志文件
max log size = 50 #设置Samba Server日志文件的最大容量,单位为KB,0代表不限制
# ---------------- Standalone Server Options[独立运行进程] ---------------------
#security = user
security = share #共享级别:共享目录只能被授权的用户访问
passdb backend = tdbsam #建立安全账户管理数据库
# ----------------- Printing Options[打印选项]-----------------------------
#load printers = yes #设置是否在启动Samba时共享打印机
#cups options = raw #通用unix打印选项
#============ Share Definitions[共享参数] =================
[Public]
path = /home/zyc/share
writable = yes
browsable = yes
guest ok = yes
guest only = yes
create mode = 0777
directory mode = 0777
[homes] ##设置用户宿主目录
comment = Home Directories ##描述该共享:家目录
browseable = no ##指定该共享是否可以浏览
writable = yes ##指定该共享路径是否可写
[printers] ##设置打印机宿主目录
comment = All Printers ##描述:所有打印机
path = /var/spool/samba
browseable = no
guest ok = no ##指定该共享是否允许guest账户访问
writable = no
printable = yes ##指定是否可打印
# [public]
# comment = Public Stuff ##定义说明信息
# path = /home/samba ##共享目录路径
# public = yes ##指定该共享是否允许guest账户访问
# writable = yes
# printable = no
# write list = +staff ##允许写入该共享的用户
# + =====》 只在本机的密码文件组中查找
# & =====》只在nis服务中查找
# @ =====》先通过NIS服务器查找,nis找不到再到本机查找
注意:在samba4中 share 和 server已经被禁用,需要用 security = user 和map to guest =Bad User来实现无密码访问目录
- 为samba服务创建用户、属组以及修改权限
groupadd smb
useradd smb -d /home/smb/ -g smb -s /sbin/nologin
chown -R smb:smb /home/smb/
#创建samba用户
#注意,添加的账户必须是linux已经创建的账户,直接添加samba用户会导致失败
smbpasswd -a smb
#删除samba用户
smbpasswd -x smb
- 设置samba开机启动
#centos 7
systemctl enable smb.service
systemctl enable nmb.service
- 启动samba服务
#centos 7
systemctl start smb.service
systemctl start nmb.service
访问samba服务
在WINDOWS系统中打开计算机,在地址栏中输入 \服务器IP 访问。
为方便访问,可以映射到网络驱动器。