/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

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐