一、了解samba服務;
1.概念:實作windows和linux系統之間實作smb協定的一款開源軟體,是c/s結構。
2.smb(服務消息塊協定):是一種在區域網路上共享檔案和列印機的通信協定,提供不同系統之間共享檔案或列印機。
3.netbios(網絡基本輸入輸出系統協定):負責資料傳輸過程中的主機解析。
4.cifs(通用網絡檔案系統):cifs 是針對 microsoft windows 作業系統的本地網絡檔案系統。 linux 系統可以挂載和訪 問cifs 檔案共享 , 如同常見的網絡檔案系統一樣。
5.samba的作用:共享檔案和列印機,支援将linux加入到windows的ad中;實作linux和windows之間的通路。
6.實作原理:samba服務功能強大,這與其通信基于smb協定有關。smb不僅提供目錄和列印機共享,還支援認證、權限 設定。在早期,smb運作于nbt協定(netbios over tcp/ip)上,使用協定的137、138及tcp協定的139端口, 後期smb經過開發,可以直接運作于tcp/ip協定上,沒有額外的nbt層,使用tcp協定的445端口。
用戶端---------(1)---------> 服務端---------(2)---------->smb.conf主配置檔案
用戶端-------- (4)----------> 服務端----------(3)---------->日志檔案
二、samba軟體包的組成:
1.samba軟體組成:samba-common(公共元件)、samba-client(用戶端)、samba(主程式)、samba-winbind(允許unix 系統利用windowsad的使用者資訊);
2.samba服務的程式元件:
smb:提供共享通路,管理檔案傳輸,端口tcp139号(smb協定)、tcp445号(cifs協定)
nmb:負責netbios協定(負責跨平台實作共享)解析,端口udp137、138号
三、了解samba的主配置檔案:/etc/samba/smb.conf
1.主配置檔案的格式:#表示注釋、;表示配置的樣例、[global]全局設定、[homes]家目錄共享設定、[printers]列印機共享設 置;
四、搭建匿名和認證的共享
a.配置網絡:如ip、網關、主機名、關閉selinux、關閉iptables;
b.安裝samba:推薦使用yum安裝;
c.修改配置檔案:smb.conf主配置檔案,根據需求進行修改;smbusers共享賬号的别名檔案;一個smb使用者可以映射到多 個名稱;
d.管理samba使用者:
pdbedit -a -u 使用者 ##添加系統使用者到smb使用者
pdbedit -x -u 使用者 ##删除系統使用者在smb使用者中
pdbedit -l ##檢視smb使用者
e.啟動服務:
/etc/init.d/smb start ##啟動共享
/etc/init.d/nmb start ##啟動netbois服務
f.通路測試:
五、samba服務的通路:
1.smbclient:
yum -y install samba-client ##安裝軟體包
smbclient -l ip位址 -u 使用者 ##列出共享
smbclient -u 使用者 //ip位址/共享名 ##通路匿名共享時,不需要指定-u
2.mount:
yum -y install cifs-utiles ##安裝cifs工具
mount -o username=使用者名 //ip/共享名 挂載點 ##通路認證共享
mount -o username=* //ip/共享名 挂載點 ##通路匿名共享
3.windows用戶端共享的原理:
net share ##管理本地共享
net use ##管理共享映射
net use 共享路徑 /delete ##删除共享緩存
inetcpl.cpl ##打開inet選項,删除通路記錄
匿名共享:
1.設定網絡參數和基礎環境:
[root@smb ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
device=eth0
hwaddr=00:0c:29:68:b1:0f
nm_controlled=no
onboot=yes
bootproto=static
ipaddr=192.168.100.150
netmask=255.255.255.0
gateway=192.168.100.100
dns1=192.168.100.100
:wq
[root@smb ~]# vi /etc/sysconfig/network
hostname=smb.linuxfan.cn
[root@smb ~]# vi /etc/selinux/config
selinux=disabled
[root@smb ~]# chkconfig iptables off ##設定防火牆開機不啟動
[root@smb ~]# reboot ##重新開機主機
2.安裝samba軟體:
[root@smb ~]# mount /dev/cdrom /mnt ##挂載CD光牒到/mnt這個目錄下
[root@smb ~]# rm -rf /etc/yum.repos.d/*
[root@smb ~]# vi /etc/yum.repos.d/centos.repo ##編輯yum配置檔案
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0
[root@smb ~]# yum -y install samba ##安裝samba軟體包
3.修改/etc/samba/smb.conf定制功能:
[root@smb ~]# vi /etc/samba/smb.conf ##删除注釋:%g /^#/d 删除空行:%g/^$/d 删除樣例行:%g /^;/d 删除多餘空行;修改如下:
[global]
[public]
comment = public stuff
##描述
path = /opt/share
##設定共享的路徑
public = yes
##設定是否公開共享
writable = yes
##設定是否可寫,即上傳檔案
printable = no
##共享列印機設定
[root@smb ~]# mkdir /opt/share
[root@smb ~]# touch /opt/share/a.file
[root@smb ~]# chmod 777 /opt/share
[root@smb ~]# testparm ##測試配置是否有誤
4.啟動服務:
[root@smb ~]# /etc/init.d/smb start
[root@smb ~]# /etc/init.d/nmb start
[root@smb ~]# chkconfig smb on
[root@smb ~]# netstat -utpln |grep mb ##tcp:139,445/udp:137,138檢視端口
5.用戶端測試:
windows:
\192.168.100.150\public
linux:
第一種方式:
挂載CD光牒,配置yum源;
yum -y install cifs*
mount -o cifs //192.168.100.150/public /benet/ ##匿名共享提示輸入密碼直接回車
ls /benet ##驗證
第二種方式:
yum -y install samba-client
smbclient //192.168.100.150/public ##登陸
smb: \> ##ls檢視,get 檔案名 下載下傳 ,put 檔案名 上傳 ,quit退出
使用者認證的共享:注意匿名和認證選一個
1.建立使用者:
useradd u01
useradd u02
pdbedit -a u01 ##将系統使用者添加為smb使用者
pdbedit -a u02
pdbedit -l ##檢視smb使用者
2.修改配置檔案:
[root@smb ~]# vi /etc/samba/smb.conf
public = no ##共享非公開
writable = no ##預設不可以寫
valid users = u01, u02 ##允許通路的使用者
write list = u01 ##有寫入權限的使用者
testparm ##測試配置是否有誤
/etc/init.d/smb restart ##重新開機服務
netstat -utpln |grep mb ##檢視端口使用情況
3.測試:
windows主機:
\192.168.100.150
登陸使用者名密碼測試讀取寫入權限
cmd中net use 檢視儲存的連結資訊
net use * /del 删除儲存的連接配接資訊
再次通路\192.168.100.150測試另外使用者
linux:客戶機必須配置ip,能夠與samba伺服器處于同一網絡
mount -o username=u01 //192.168.100.150/public /mnt
cd /mnt
touch b.file
ls
smbclient -u u02 //192.168.100.150/public