samba的使用

samba可以使NFS相互分享,window下也可以连接linux下的share path,犹如访问自己的partition一般,十分方便。

如果只是为了使用samba来实现简单的功能,按照如下步骤就可快速完成。

在ubuntu下安装使用samba很简单:

1、apt-get install samba

2、gedit /etc/samba/smb.conf

增加共享的路径:

比如:

[share name]

comment=a share path

path=/work

public=yes

writable=yes

......

3、增加访问账户

在terminal中敲入:smbpasswd -a username

然后输入密码,核实密码

4、访问ip即可

-------------------------------------------------------

更详细的samba资料,参考文档:

http://120.105.184.250/peiyuli/network-3/SAMBA%E4%BC%BA%E6%9C%8D%E5%99%A8.htm

SAMBA 伺服器

UNIX-like 主機可以透過 NFS 互相分享檔案,而微軟 Windows 也可以透過類似的檔案系統 CIFS (Common Internet File Syatem) 形成「網路上的芳鄰」,達到檔案的分享。微軟的網路系統並不是使用 TCP/IP 協定 (但 Windows 系統支援),而是使用 NetBIOS/NetBEUI 將主機以工作群組 (workgroup) 組織起來,每個主機以電腦名稱區別。 可惜的是,NFS 只能讓 UNIX 主機互相溝通,CIFS 也只能讓 Windows 主機彼此聯繫。

SAMBA 的發展

1991 年,一位名叫 Addrew Tridgwell 的大學生為了想讓 Unix 與 DOS 之間可以分享資料,開發出 SMB (Server Message Block) 檔案系統,因 SMB 是無意義的字,無法註冊成為新檔案系統的商標,後來從字典裡面找到相近的字  SAMBA,且又是著名拉丁舞曲的名稱,因此便決定以此名稱當作商標。

NetBIOS (Network Basic Input/Output System) 是由 IBM 發展出來讓區域網路內主機進行連繫的通訊協定,SAMBA 為了要讓 UNIX 主機加入 Windows 系統來分享資源,因此就是架構在 NetBIOS 上發展出來的。由於 NetBIOS 是定義在區域網路內 (無法跨越路由器),因此沒有使用類似 TCP/IP 的通訊協定,也就不需要 IP 的設定,主機與主機間的區別是利用 NetBIOS Name (不同於 Windows 電腦名稱 ),資料便是在不同的 NetBIOS Name 之間傳遞。想要從 SAMBA 主機登入 Windows 主機使用分享資源,就必須先加入該 Windows 主機所在的工作群組 (Workgroup),且在同一個工作群組中,NetBIOS 名稱必須是唯一的。至於 NetBEUI (NetBIOS Extended User Interface) ,則是 IBM 在 NetBIOS 發展出來後的改良版本。

常見的 SAMBA 主機連線方式有:

 Workgroup model (peer/peer):區域網路內所有主機均具同等地位,可以自己管理本機的帳號與密碼,也有獨立執行各項軟體的能力。

 Domain model:欲使用電腦資源,就需要帳號與密碼,而帳號與密碼集中保管在主要網域控制站 (PDC, Primary Domain Controller),藉由 PDC 進行身份確認後,才給予使用者適當的使用權限。

SAMBA 伺服器的設定

SAMBA 伺服器主要是透過兩個服務程式 (daemon) 來運作,分別為:

 nmbd:主要是用來管理工作群組、NetBIOS Name 的解析,將會利用 UDP 協定開啟 port 137 與 138 來負責。

 smbd:主要是用來管理 SAMBA 主機分享的目錄、檔案與印表機等資源,將會利用 TCP 協定開啟 port 139 與 445 來負責。

SAMBA 伺服器的相關設定檔案均放在目錄 /etc/samba 中:

/etc/samba/smb.confSAMBA 伺服器的主要設定檔,主要在設定工作群組、NetBIOS Name 以及分享的目錄等。
/etc/samba/lmhostsLAN Manager Hosts,主要在設定 NetBIOS Name 與該主機 IP 的對應關係,有點類似 /etc/hosts 的功能,可以協助縮短 NetBIOS Name 的解析時間。
/etc/samba/smbusers由於 Windows 與 UNIX 在管理者與訪客的帳號名稱不一致,例如 administrator vs. root,guest vs. nobody。此檔可以設定兩系統之間的相關帳號對應關係。
/etc/samba/smbpasswd預設不存在,是 SAMBA 伺服器預設的使用者密碼對應表。當 SAMBA 伺服器的設定較嚴密時,將會要求輸入使用者帳號與密碼才能登入,此檔便是相關資料的存放位置。

設定 smb.conf

設定檔 /etc/samba/smb.conf 可以分成兩部份來看,一個是主機整體參數,定義在 [global] 區段中;另一部份是分享目錄參數,定義在個別以共用目錄名稱為名義的區段。下列為幾個重要區段的簡易說明:


[global]

設定 SAMBA 主機的整體參數,包括工作群組、主機的 NetBIOS Name、字元編碼的顯示、登錄檔的設定、是否使用密碼、以及使用密碼驗證的機制等。

[homes]

設定 SAMBA 伺服器的使用者家目錄之相關權限。

[printers]

設定分享的印表機。

[共用目錄名稱]

設定其他分享的目錄,名稱可自訂。

e.g.,

─ 主機整體參數

參數名稱說    明

workgroup

工作群組名稱。
server string主機的註解說明。
netbios name主機的 NetBIOS 名稱,在同一工作群組中必須是唯一。
display charsetSAMBA 伺服器上面的顯示編碼,通常與 unix charset 設定值相同。
unix charsetLinux 系統主機所使用的編碼,一般就是 /etc/sysconfig/i18n 內的預設編碼 UTF-8。
dos charsetWindows 用戶端所使用的編碼,一般是 Big5,但在 SAMBA 伺服器內被稱為 cp950。
log file登錄檔的存放位置
max log size登錄檔的最大容量 (單位:KBytes),若大於此容量,登錄檔會被 rotate 掉。
security使用者存取 SAMBA 伺服器的安全等級,由低至高分別為 share、user、server、domain 與 ads:

share:使用者不需輸入帳號與密碼,即可登入 SAMBA 伺服器。

user:預設安全等級,使用者必須先輸入帳號與密碼,經 SAMBA 伺服器驗證通過後,才可登入使用分享的資源。

server:使用者需經登入驗證程序,但驗證工作會由另一台指定的 SAMBA 伺服器或 Windows 伺服器執行。

domain:若 SAMBA 伺服器要加入網域而非工作群組,則可使用此等級。使用者登入驗證工作則由網域中的 Windows 伺服器來執行。

ads:若 SAMBA 伺服器要加入網域,並使用 AD 目錄服務,則可使用此等級 (SAMBA 3.0 以上版本)。

encrypt passwords等於 Yes 表示密碼要加密。
smb passwd file密碼存放檔案,預設是 /etc/samba/smbpasswd。

─ 分享目錄參數

參數名稱說    明

comment

共用目錄說明。
path共用目錄在 Linux 主機的實際路徑。
public是否讓登入者看到此分享目錄。
readonly是否唯讀。
writable是否可以寫入。若與 readonly 設定值相抵觸,以最後出現的設定為主。
create mode設定新建檔案的預設權限。
directory mode設定新建目錄的預設權限。
valid users指定可以使用此分享目錄的使用者

在參數的設定中,也有一些變數可以使用:

變數名稱說    明

%S

取代目前區段名稱中的共用目錄名稱。
%m代表 Client 端主機的 NetBIOS Name。
%M代表 Client 端主機的電腦名稱 (HOSTNAME)。
%L代表 SAMBA主機的 NetBIOS Name。
%h代表 SAMBA主機的 HOSTNAME。
%H代表目前使用者的家目錄
%U代表目前使用者的帳號名稱
%g代表目前使用者的群組名稱
%I代表 CLient 端主機的 IP
%T代表目前日期與時間

檢驗設定檔

語法:testparm
-v             顯示完整的參數設定,包含預設值

e.g.,

啟動 SAMBA 服務

欲在開機時便自動啟動 SMB服務,可執行指令「setup」或「ntsysv」,在選單中選取「系統服務」工具進入服務設定,然後再於服務選單中按空白鍵選取 nmb 與 smb 項目並確定 (參考「遠端連線伺服器」部份)。若想以手動方式操控 SMB 服務,可執行下列指令:

# /etc/init.d/smb start

啟動 SMB 服務
# /etc/init.d/nmb start啟動 NetBIOS 名稱解析服務

# /etc/init.d/smb stop

停止 SMB 服務

# /etc/init.d/smb restart

重新啟動 SMB 服務

# service smb restart

重新啟動 SMB 服務

觀察與使用分享資源

顯示分享資源

語法:smbclient -L //[netbios名稱 | IP] [-U 使用者帳號]
-L            顯示指定主機所分享的資源
-U            以指定帳號存取資源

e.g.,

顯示資源被使用情形

SAMBA 伺服器的資源被分享出來後,可利用指令「smbstatus」檢視目前資源被使用的情形。

e.g.,

在 Linux 主機存取遠端 Windows 系統的檔案

欲從 Linux 主機存取 Windows 系統資源,在文字模式中可利用指令「smbclient」:

語法:smbclient '\\電腦名稱\分享資料夾名稱' [-U 使用者帳號]

通過密碼驗證 (未輸入密碼將視同 guest 身份) 進入 Windows 系統後,會看到 smb 提示符號,接下來的操作方式與 ftp 的操作幾乎一樣。

e.g.,

在 X Window 視窗中,可利用檔案瀏覽器瀏覽「電腦/網路/Windows 網路/工作群組/電腦主機名稱/分享資料夾」。

e.g.,

或於位置欄位輸入:

smb://網路芳鄰主機 IP 位址/分享資料夾

e.g.,

在 Linux 主機掛載 Windows 檔案系統

Windows 的 smb 檔案系統可以像 Linux 的檔案系統一樣直接掛載到 Linux 的目錄樹中:

語法:mount.cifs //電腦名稱/分享資料夾名稱 掛載點

欲卸載由 mount.cifs 掛載的檔案系統,語法為:

語法:umount 掛載點

e.g.,

範例1 ― 安全等級 share

主機環境

工作群組 (workgroup):IM-GROUP
NetBIOS Name:im1
安全等級 (security):share
分享目錄:實際路徑為 /tmp,共用目錄名稱為 temp,可讀寫

設定檔 smb.conf

說明由於無參數 writable 出現,參數 readonly 值為 no 即代表可寫入 (非唯讀)。

範例2 ― 安全等級 user

主機環境

工作群組 (workgroup):IM-GROUP
NetBIOS Name:im1
安全等級 (security):user
NetBIOS Name 的解析順序:lmhosts -> host -> broadcast
每個登入者擁有自己的家目錄,登入密碼要加密
分享目錄:1. 實際路徑為 /tmp,共用目錄名稱為 temp,可讀寫

2. 實際路徑為 /public,共用目錄名稱為 public,只有群組 users 的成員可以進入,並擁有寫入權限

設定檔 smb.conf

說明

由於安全等級設定為 user,登入使用者帳號與密碼必須於 SAMBA 伺服器 之密碼檔 /etc/samba/smbpasswd 中設定。如欲使用 Linux 系統帳號與密碼登入 SAMBA 伺服器,可先將密碼檔 /etc/passwd 轉換成為 SAMBA 伺服器的密碼檔,請參考下列操作方式:

# cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd

# pdbedit -i smbpasswd:/etc/samba/smbpasswd

# rm /etc/samba/smbpasswd

接著利用指令「smbpasswd」,一一設定 SAMBA 伺服器中每個帳號的密碼:

語法:smbpasswd [-adem] 使用者帳號
-a            新增使用者帳號於密碼檔 /etc/samba/smbpasswd
-d            暫時禁止使用者登入伺服器
-e            恢復允許使用者登入伺服器

e.g.,

# smbpasswd -a guest

新增 SAMBA 使用者 guest
# smbpasswd -d user1暫時拒絕使用者 user1 的登入

如此就可使目前 Linux 系統上所有使用者同時成為 SAMBA 伺服器的使用者,未來 Linux 系統如有新增的使用者 (如 user1),亦可利用指令「pdbedit」使其成為 SAMBA 伺服器之使用者:

# pdbedit -a user1

設定檔經過修改過後,必須重新啟動 SAMBA 伺服器,新設定方可生效。若設定檔中變數 workgrouop 的值設定為一新增的工作群組 (如 IM-GROUP),則可能需等幾分鐘,才可以在網路上的芳鄰中看到該群組 (如下圖)。

È

È


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值