1简介
samba服务有两个进程,一个是smbd,主要用来管理共享文件,使用TCP的139、445端口,另一个是nmbd,用来实现主机名到IP地址的转换,使用UDP的137、138端口
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服务器(匿名方式)
1)smbclient -L //172.30.245.1 列出共享目录信息
2)smbclient //172.30.245.1/ladeng 访问共享目录
linux客户端访问windows服务器(匿名方式)
1)共享windows目录,如D盘下的ftp目录
2)把目录的属主改为guest,并根据需求修改权限
3) 开启guest用户,命令提示符输入:net user guest /avtive:yes
4)linux下挂载使用,mount //172.30.245.9/ftp /mnt