什么是SAMBA?如何配置?方法来了!

发布时间:2024年01月15日
/bin/bash

目录

SAMBA

SMB协议

SMB连接过程

samba主要有两个进程

Linux下搭建samba服务器实现文件共享

Linux客户端:

Windows客户端:


SAMBA

????????samba是SMB文件共享协议的应用软件,可以让Linux系统和Windows系统之间相互共享资源。

在Linux系统中使用smbd服务器提供提供共享资源;使用smbclient去访问其他smbd服务器所提供的共享资源。

在Windows中有SMB/CIFS服务器和客户端。


SMB协议

????????SMB(Server Message Block)协议是一种在局域网上共享资源的协议,它可以为局域网中的Windows系统、Linux系统或是IOS系统提供文件系统、打印服务或其他一些信息。

SMB的工作原理基于NetBIOS(Network Basic Input/Output System)协议与SMB这两种协议。

??? NetBIOS:用于发现局域网内主机名;使用下列端口:UDP/137(NetBIOS 名称服务)、UDP/138(NetBIOS 数据报服务)、TCP/139(NetBIOS 会话服务);
??? SMB:用于文件传输;使用下列端口:TCP/139、TCP/445。

SMB连接过程

??? 首先客户端发送一个 SMB Negotiate Protocol Request 请求数据报,并列出它所支持的所有SMB协议版本。

??? 服务器收到请求信息后回应 Negotiate Protocol Response,并列出希望使用的协议版本;如果没有可使用的协议版本则返回0XFFFFH,结束通信。

??? 协议确定后,客户端进程向服务器发起一个用户或共享的认证,这个过程是通过发送 Session Setup Request 请求数据报实现的;客户端发送一对用户名和密码或一个简单密码到服务器。

??? 然后服务器通过发送一个 Session Setup Response 应答数据报来允许或拒绝本次连接。

??? 当客户端和服务器完成认证之后,它会发送一个 Tree Connect Request 数据报并列出它想访问网络资源的名称

??? 之后服务器会发送一个 Tree Connect Response 应答数据报以表示此次连接是否被接受或拒绝。

??? 连接到相应资源后,SMB客户端就能够通过open SMB打开一个文件,通过read SMB读取文件,通过write SMB写入文件,通过close SMB关闭文件。

samba主要有两个进程

??? smbd进程:用于控制共享目录、权限和文件传输。
??? nmbd进程:用于名称解析,基于NEtBIOS协议获得计算机名称,解析为相应的IP地址。

Linux下搭建samba服务器实现文件共享
?

服务器端

1、前提配置:

关闭防火墙

systemctl ?stop ?firewalld

iptables -F

setenforce ??0

2、安装samba

# ?yum ?-y ?install ?samba?

3、创建共享目录

mkdir ?/test

touch ?/test/1.txt

?

4、主配置文件中声明共享区域,创建只读共享

vim ??/etc/samba/smb.conf

末行添加

[test]

???comment = test

???path = /test

???public = yes

???read only = yes

?

5、启动服务

# systemctl ?start ?smb

# systemctl ?status??smb

# netstat ?-antpul ?| grep ?smb

6、检查参数ok情况

# testparm

?

7、创建用户,设置为samba用户

1)设置已有的账号

smbpasswd ?-a ?用户名

2)设置新建的账号

useradd ??test

pdbedit ??-a ?-u ??test

输入密码

?

?

Linux客户端

1、安装客户端工具

yum -y install samba-client*

2、客户端查看共享目录

??smbclient -U 用户名 -L //服务器地址/共享目录名称

??smbclient ?-U test?-L ?//192.168.100.131/test

3、客户端登录samba服务器

smbclient -U 用户名 ?//服务器地址/共享目录名称

smbclient ?-U???test????//192.168.100.131/test

ls 查看

get 下载??可以下载

put 上传??但是不可以上传,因为我们设置的是只读!

Windows客户端:

网络:\\192.168.100.131\test

输入账号:test密码:123.com

?

成功访问:

Win ?+R ?访问 ??\\192.168.100.131\test

输入账号:test密码:123.com

?

hello  world

文章来源:https://blog.csdn.net/2302_77582029/article/details/135598006
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。