Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,主要用于实现Windows和Linux之间互相共享资源.
SAMBA 基础及实战
SMB(Server Message Block)通信协议
:是微软(Microsoft)和英特尔(Intel)在1987年制定的协议,主要是作为Microsoft网络的通讯协议,SMB协议在局域网上用于服务器文件访问和打印的协议。SMB 是在会话层(session layer)和表示层(presentation layer)以及小部分应用层(application layer)的协议。
CIFS (Common Internet File System)
:通用Internet文件系统,在windows主机之间进行网络文件共享是通过使用微软公司自己的CIFS服务实现的,例如:Windows的网上邻居功能
SMB协议的实现在Windows上是CIFS
,在Linux系统上是SMABA
Samba服务采用C/S模式,,其工作机制是让NetBIOS
(Windows 网上邻居的通信协议)和SMB
两个协议运行于TCP/IP通信协议之上,并且用NetBIOS协议让Windows在“网上邻居”中能浏览Linux服务器。Samba服务器既可以充当文件共享服务器,也可以充当一个Samba的客户端,例如,一台在Linux 下已经架设好的Samba服务器,windows客户端就可以通过SMB协议共享Samba服务器上的资源文件,同时,Samba服务器也可以访问网络中 其它windows系统或者Linux系统共享出来的文件
FROM:https://blog.51cto.com/itwish/2174270
所需软件及守护进程说明
Samba所需软件包括:
- Samba(服务器端软件包)
- Samba-client(客户端软件包)
- Samba-common(Samba公共文件软件包)
- Samba-Winbind(使用 Windows 域控制器管理 Linux 帐户)
Samba由smbd
和 nmbd
两个守护进程组成:
-
smbd
服务进程是Samba的核心启动服务,用于提供smb/cifs
服务,主要负责建立 Linux Samba服务器与Samba客户机之间的对话,为客户端提供文件共享与打印机服务及负责用户权限验证以及锁功能,smdb默认监听端口是 139 与 445 TCP端口
-
nmbd
进程提供NetBIOS
名称服务,用于实现Windows访问Linux文件,以满足基于Common Internet File System(CIFS
)协议的共享访问环境(类似与DNS实现的功能,实现把Linux系统共享的工作组名称与其IP对应起来),Samba通过nmb 服务启动 nmbd进程,该进程默认监听的是137与 138 UDP端口
SAMBA安装与使用
使用yum安装SMABA
SAMBA的简单使用(单用户)
:warning:用户创建的共享目录配置文件为/var/lib/samba/usershares
- 修改
smb.conf
参数(不修改默认也可以直接运行samba):
- 检查配置文件语法错误,使用命令
testparm
即可
- 语法检查无错误的话,可以直接启动samba服务
- 创建用户
- 客户端挂载samba
SAMBA共享目录
- 编辑
smb.conf
配置文件,添加自定义共享目录
- 检查语法错误
testparm
- 重启
nmb
和smb
服务
- 客户端查看并使用
- 可以使用facl来针对某些用户进行权限控制
smb.conf 配置详解
smb.conf文件详解
Windows/Linux客户端挂载SAMBA
对于Windows客户端查看Linux服务器端共享文件而言:可以通过网页浏览器、我的电脑或者网上邻居直接使用,具体方法是在地址栏输入
对于Linux用户而言:有以下三种方法
pdbedit、smbpasswd、smbclient的使用
pdbedit(增删用户 —> passdb.tdb 库中)
参数列表:
smbpasswd(增删用户 —> 单独文件中)
参数列表:
smbclient(客户端工具)
常用组合:
samba-swat(SMABA的WEB管理工具)
SWAT的安装
配置与启动
重启xinetd
服务来启动swat