使用者工具

網站工具


linux:samba

Samba伺服器

  1. 簡介
  2. 相關套件檔案
  3. 設定(/etc/samba/smb.conf)
  4. 參考資料

簡介

Linux要與windows做網芳式分享檔案,以smb(Server Message Block, Session Message Block)協定為主。Linux界的高手用逆向工程把微軟的NetBIOS解析出來變成SMB協定。

SMB 與 NetBIOS

  • SMB(Server Message Block) Protocal 一開始由IBM所開發的。之後,Microsoft 再將此協定加以改良發展來變成自己的東西。主要用於檔案及printer 能在區域網路分享。
  • NetBIOS(Network Base Input OUT Service)主要用於 NetBIOS_Name與IP 對應的名稱解析服務。
  • SMB 是架構於NetBIOS基礎上發展起來的。
  • 早期NetBIOS是無法跨越路由,只能利用辨識不同NetBIOS名稱在單一的廣播網域下互相分享檔案。
  • 為了解決NetBIOS無法跨越路由的問題,才發展出NetBIOS Over TCP/IP

以下是SMB,NetBIOS及TCP/IP協定堆疊圖。

相關套件檔案

1.先查看自己的電腦中是否有Samba相關套件。

[root@andy ~]#rpm -qa | grep samba

system-config-samba-1.2.41-5.el5
samba-3.0.33-3.15.el5_4.1        --->Samba SMB伺服器
samba-client-3.0.33-3.15.el5_4.1 ---->Samba用戶端程式
samba-common-3.0.33-3.15.el5_4.1 --->Samba 伺服器與用戶端都需要的程式

在針對每個套件看看有哪機個檔案

[root@andy ~]#rpm -ql samba-3.0.33-3.15.el5_4.1 |tac

/usr/bin/tdbtool
/usr/bin/tdbdump
/usr/bin/tdbbackup
/usr/bin/smbstatus
/usr/bin/smbcontrol
/usr/bin/mksmbpasswd.sh
/etc/sysconfig/samba
/etc/samba/smbusers
/etc/rc.d/init.d/smb --->啟動服務的程式
/etc/pam.d/samba
/etc/logrotate.d/samba
/usr/sbin/smbd
/usr/sbin/nmbd
~略~

[root@andy ~]#rpm -ql samba-client

/sbin/mount.cifs
/sbin/umount.cifs
/usr/bin/eventlogadm
/usr/bin/findsmb
/usr/bin/nmblookup
/usr/bin/rpcclient
/usr/bin/smbcacls
/usr/bin/smbclient
/usr/bin/smbget
/usr/bin/smbprint
/usr/bin/smbspool
/usr/bin/smbtar
/usr/bin/smbtree

[root@andy ~]#rpm -ql samba-common

/etc/rc.d/init.d/winbind
/etc/samba
/etc/samba/lmhosts
/etc/samba/smb.conf --->主要設定檔

Smb.conf設定檔

Share : 提供一般分享模式

[root@andy ~]# vi /etc/samba/smb.conf

—————– Network Related Options ————

workgroup = SUPERMAN (設定群組名稱)
server string = Samba Server Version %v(主機簡易說明)
netbios name = SUPER(netbios 主機名稱)
security=share(不需要密碼即可分享資料)

———通常此設定選項都寫到最後一列————-

 [super]             ---->分享的名稱
 path = /tmp/Ghost11/ --->分享的目錄位置
 public = yes         ---->是否讓所有可以登入的使用者看到這個項目
 writable = yes       ---->寫入權限
 browseable = yes     ---->是否要瀏覽分享的資料夾

———啟動服務Samba服務———————–

[root@andy ~]# /etc/init.d/smb start

正在啟動 SMB 服務:                                         [  確定  ]
正在啟動 NMB 服務:                                         [  確定  ]

—–測試 分享的模式—

samba_share

user一般使用者模式(需要帳號及密碼登入)

[root@andy ~]# vi /etc/samba/smb.conf

—————– Network Related Options ————

workgroup = SUPERMAN (設定群組名稱) ----同上
server string = Samba Server Version %v(主機簡易說明) ---同上
netbios name = SUPER(netbios 主機名稱) -----同上
security=user(需要帳號及密碼即可分享資料) 
encrypt passwords = yes  ---->需要密碼驗證
smb passwd file = /etc/samba/smbpasswd --->驗證的密碼寫入到這個檔

———分享的資料同上一個分享模式的設定————-

———登入帳號及密碼的設定————-

1.帳號為Linux主機的/etc/passwd的檔案中。

2.先檢查是否有這個檔案 /etc/samba/smbpasswd

i.若沒有此檔(/etc/samba/smbpasswd)

 執行[root@andy ~]#cat /etc/passwd |mksmbpasswd.sh > /etc/samba/smbpasswd
     [root@andy ~]#pdbedit -i smbpasswd:/etc/samba/smbpasswd 
     

ii.若有此檔案,就直接鍵入密碼 (實際實驗當中:若沒有/etc/samba/smbpasswd直接執行ii此步也是可以,只不過會有一些訊息)

[root@andy ~]# smbpasswd -a ali

New SMB password:

Retype new SMB password:

3.重新啟動服務

[root@andy ~]# /etc/init.d/smb restart

4.測試

samba_user1.png

samba_user2.png

linux/samba.txt · 上一次變更: 2015/03/14 10:45 由 ali88