一、samba简介
1、概述:
对于windows的网上邻居来讲,共享文件的方式用的是SMB和CIFS协议以及NETBIOS协议Linux/Unix之间用的是NFS协议。但是Linux和Windows之间是不能共享的,所以澳大利亚国立大学的Andrew Tridgell,决定开发一款软件, 实现不同系统之间文件共享。即Samba诞生了。对于我们学习linux的同学来说,samba为我们在linux和window之间架起了一座桥梁,可以使我们在linux和window之间进行通信,最基本的就是我们可以进行文件拷贝,以及不同系统之间资源共享。
2、应用场景:
文件和打印机共享:smb进程实现资源共享,将文件和打印机发布到网络中,以供用户访问。
身份验证和权限设置:smbd服务服务支持user mode 以及domain mode 等身份验证和权限设置模式,通过加密来保护共享的文件。
名称解析:samba通过nmbd搭建NBNS(netBIOS name service)进行名称解析,将计算机的netBIOS解析成对应的IP地址
浏览服务:局域网中,samba服务器可以成为本地主浏览服务器,保存资源列表,保存可用资源列表。
3、工作原理:
当客户端访问服务器时,通过smb协议进行传输。具体流程如下:
(1)、协议协商:
当客户端访问smb服务器的时候,会发送一条negprot指令数据包,告其计算机支持那种smb,smb服务器根据客户端的请求,选择最优的smb作为回应:
客户端---------------发negprot请求-->---------------服务器端
客户端------------<--发negprot回应-----------------服务器端
(2)、建议连接
当确定了smb类型后,客户端会发送会话,建立指令数据包,提交账号和密码,请求与smb服务器之间建立连接,如果身份验证通过,smb服务器会对会话建立报文做出回应,并为用户分配一个UID,供用户与其通信时使用
客户端---------------发session setup请求-->---------------服务器端
客户端------------<--发session setup回应-----------------服务器端
(3)、访问共享资源
客户端访问服务器资源时,会发送tree connect 指令,通知服务器需要防问的共享资源名,如果设置允许,服务器会为每个客户端与共享资源连接之间分配TID,这样客户端就可以访问需要的共享资源
客户端---------------发tree connect请求-->---------------服务器端
客户端------------<--发tree connect回应-----------------服务器端
(4)、断开连接
当共享使用完毕后,客户端向服务器发送tree disconnect 报文关闭共享,与服务器断开连接
客户端---------------发tree disconnect请求-->---------------服务器端
客户端------------<--发tree disconnect回应-----------------服务器端
二、在linux配置举例
采用共享一个目录,使用用户名和密码登录后才可以访问,要求可以读写
步骤:
1、安装samba:
yum install -y samba samba-client
安装完成后可以采用下面命令查看:
rpm -qa samba #qa为(query all)的缩写
2、配置文件/etc/samba/smb.conf
进行配置:
编辑samba的配置文件:
vim /etc/samba/smb.conf
找到[global]
将 security = share
改为 security = user
注释 [home] 模块
在末尾添加如下模块:
添加:
[myshare]
comment = share for users
path = /samba
browseable = yes
writable = yes
public = no
#public = no 即禁止匿名账号登陆
保存配置文件,创建目录:
mkdir /samba
chmod 777 /samba
创建系统账号:
useradd user1
useradd user2
添加user1和user2为samba账户:
pdbedit -a user1
#根据提示输入密码
pdbedit -a user2
列出samba所有的账号:
pdbedit -L
重启服务:
service smb restart
3、进行测试:
在linux上ifconfig,将得到IP地址进行测试:例如我PC:
浏览器输入:
file://192.168.89.131/myshare/
或者在windows的运行里 输入:
\\192.168.89.131
-------------------------配置完成--------------------------------
三、总结
以上是对samba的简单介绍以及配置。