SAMBA服务器配置详情
SAMBA服务器基础概念
- SAMBA概念
FTP文件传输服务可以让主机之间的文件传输变得简单方便,但是FTP协议的本质是传输文件,而非共享文
件,因此要想通过客户端直接在服务器上修改文件内容还是一个问题。
微软公司和英特尔公司共同制定了SMB(Server Messages Block,服务器消息块)协议,旨在解决局域网内
的文件或打印机等资源的共享问题 - SAMBA工作原理
协议协商
客户端在访问Samba服务器时,发送negprot指令数据包,告知目标计算机其支持的SMB类型。Samba服务器根据客户端的情况,选择最优的SMB类型,并做出回应;
建立连接
当SMB类型确认后,客户端会发送session setup指令数据包,提交帐号和密码,请求与Samba服务器建立连接,如果客户端通过身份验证,Samba服务器会对session setup报文作出回应,并为用户分配唯一的UID,在客户端与其通信时使用。
访问共享资源
客户端访问Samba共享资源时,发送tree connect指令数据包,通知服务器需要访问的共享资源名,如果设置允许,Samba服务器会为每个客户端与共享资源连接分配TID,客户端即可访问需要的共享资源。
断开连接
共享使用完毕,客户端向服务器发送tree disconnect报文关闭共享,与服务器断开连接。 - SAMBA工作协议
Samba服务功能强大,这与其通信基于SMB协议有关。SMB不仅提供目录和打印机共享,还支持认证、权限设置。期SMB经过开发,可以直接运行于TCP/IP协议上,使用TCP协议的445端口。
Samba在windows下使用的是NetBIOS协议,如果你要使用Linux下共享出来的文件,请确认你的windows系统下是否安装了NetBIOS协议 - SAMBA端口
TCP 139/445,UDP 137/138
5.#SAMBA服务安装及配置
1.关闭防火墙&Selinux
systemctl stop firewalld setenforce 0 getenforce
2.安装SAMBA服务器及客户端
#samba服务器,samba-client客户端
yum install samba
yum install samba-client -y
3.创建共享资源账户
#Samba服务程序默认使用的是用户口令认证模式。
#不同之处,只有建立账户信息数据库之后,才能使用用户口令认证模式。
#pdbedit命令用于管理SMB服务程序的账户信息数据库。在第一次把账户信息写入到数据库时需要使用-a参数,以后在执行修改密码、删除账户等操作时就不再需要该参数了。
useradd alice
id alice
pdbedit -a -u alice
4.创建共享资源文件目录
#注意文件读写权限问题
mkdir /home/share
chown -Rf alice:alice /home/share/
5.配置SAMBA服务器配置文件
根据需要配置文件内容
vi /etc/samba/smb.conf
[global] #全局配置名称
workgroup = MYGROUP #工作组名称
server string = Samba Server Version %v #samba信息,参数%v为显示SMB版本号
log file = /var/log/samba/log.%m #日志存放位置与名称,%m为来访的主机名
max log size = 50 #日志最大容量50kb
security = user #安全验证方式,见下介绍
passdb backend = tdbsam #用户后台的类型,见下介绍
load printers = yes #共享打印机设备
cups options = raw #打印机的选项
[share] #局部共享
comment = share info... #提示信息
path = /home/share #共享目录
public = no #关闭所有人可见
writable = yes #可写
小编如图:
6.重启smb服务
systemctl restart smb && systemctl enable smb
测试:
windows测试共享
开始—>运行—>\192.168.5.153—>输入用户名密码—>登录成功
创建一个文本文件,写入信息并保存测试
#由于Windows系统的缓存原因,下次在登陆时仍保存上一次的用户名,可清除Samba登陆信息,命令如下
#net use * /del /y
如图为小编机子测试:
输入用户名和密码
linux测试共享
#linux连接samba
smbclient //192.168.5.167/share -U alice
#出现问题
#NT_STATUS_IO_TIMEOUT 需要在服务端做ip 域名的绑定,同样和/etc/resolv.conf有关
SAMBA挂载
#客户端安装支持文件共享服务的软件包cifs-utils
yum install cifs-utils -y
#Samba的用户名、密码、共享域的顺序将相关信息写入到一个认证文件中
认证文件为:/etc/samba/auth.smb (需要创建)
vi /etc/samba/auth.smb #这个文件没有,需要创建
username=alice
password=alice
domain=MYGROUP
chmod -Rf 600 auth.smb (需改文件权限)
vi /etc/fstab #自动挂载
mkdir share #创建挂载目录
//192.168.5.153/share /share cifs credentials=/etc/samba/auth.smb 0 0
mount -a
cat /share/t_share.txt
若挂载成功,则samba挂载配置成功。