1简介
       samba服务有两个进程,一个是smbd,主要用来管理共享文件,使用TCP139445端口,另一个是nmbd,用来实现主机名到IP地址的转换,使用UDP137138端口
       smb协议采用client/server架构,samba软件分为服务端和客户端,linux主机执行客户端程序,就可以访问windows共享的资源,linux执行服务端程序,就可以提供共享资源供windows访问。
 
2工作原理
       1)协议协商:客户端访问samba服务器时,发送negprot命令,告知服务器其支持smb类型,服务器选择最优的smb类型,对客户机做出回应
       2)建立连接:当smb类型确认后,客户端发送session setup命令,提交账号和密码,请求与samba服务器建立连接,如果客户端通过身份认证,samba服务器会对session setup报文做出回应,并为用户分配唯一的UID
       3)访问共享资源:客户端发送tree connect命令,通知服务器其要访问的共享资源名,如果允许,samba服务器会为客户端的共享资源分配TID,客户端即可访问共享资源了。
       4)断开连接:共享使用完毕后,客户端发送tree disconnect命令,关闭共享,与服务器断开连接
 
3 服务端配置脚本
       #!/bin/bash
       checkRPM(){
              for i
              do
                     if ! rpm -q $i &>/dev/null
                     then
                            yum install $i -y &>/dev/null
                            echo "$i is installed ok "
                     fi
              done
       }
       checkRPM samba samba-client samba-common
       cd /etc/samba
       [ ! -f smb.conf.bak ] && cp -p smb.conf smb.conf.bak
       cp -p smb.conf.bak smb.conf
       sed -i 's/^\s*security = .*/\tsecurity = share/' smb.conf
       sed -ia '$a [ladeng]' smb.conf
       sed -ia '$a path = /ladeng' smb.conf
       sed -ia '$a writeable = yes' smb.conf
       sed -ia '$a browseable = yes' smb.conf
       sed -ia '$a public = yes' smb.conf
       service smb restart &> /dev/null
       echo "samba service is start working"
 
4客户端的使用
       linux客户端访问linux服务器(匿名方式)
              1smbclient -L //172.30.245.1 列出共享目录信息
              2smbclient //172.30.245.1/ladeng       访问共享目录
       linux客户端访问windows服务器(匿名方式)
              1)共享windows目录,如D盘下的ftp目录
              2)把目录的属主改为guest,并根据需求修改权限
              3) 开启guest用户,命令提示符输入:net user guest /avtive:yes
              4linux下挂载使用,mount //172.30.245.9/ftp /mnt