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