• python开发之Linux配置samba


    一、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

    添加user1user2samba账户:

    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的简单介绍以及配置。

  • 相关阅读:
    自定义input标签输入框
    sys.argv 启动时可以传入变量
    falcon 监控
    wrk 压测工具
    mysql UPDATE和REPLACE
    tesseract识别图片中文字
    centos 查看日志 & 查找文件、目录、内容 & centos查看磁盘使用情况
    压力测试
    tensorflow + scikit-learn
    Pycharm快捷键配置
  • 原文地址:https://www.cnblogs.com/crazyforever/p/4985168.html
Copyright © 2020-2023  润新知