Presentation is loading. Please wait.

Presentation is loading. Please wait.

Windows與Linux資源共享 SAMBA

Similar presentations


Presentation on theme: "Windows與Linux資源共享 SAMBA"— Presentation transcript:

1 Windows與Linux資源共享 SAMBA
指導老師 : 黃燕忠 學生:徐庭軒( )  江柏松( )

2 目錄 SAMBA 主要目的 SAMBA 簡介與常見應用 SAMBA 所需套件與架構 SAMBA 設定流程
【說明】smb.conf基本組態設定 SAMBA 檔案功能介紹 SAMBA 相關分享程式與加密程式 SAMBA 安裝 SAMBA 組態設定 SAMBA 使用者設定 Windows 連線 SAMBA Linux 連線 SAMBA SAMBA 疑難雜症 參考來源

3 SAMBA 主要目的

4 SAMBA 主要目的 主要就是讓 Linux 與 Windows 主機之間能彼此透過『網路上的芳鄰』這個方式來分享檔案。
當你的區域網路內辦公用的主機大多是 Windows 系統時, 可以透過網芳來存取 Linux 主機上面的資源,讓你不覺得有任何不一樣!

5 SAMBA 簡介與常見應用

6 SAMBA 簡介-[1] 早期的網路世界當中,大多使用 FTP在不同主機之間傳輸檔案資料,不過使用 FTP 傳輸檔案卻無法直接修改主機上面的檔案資料。 當要更改 Linux 主機上面的某個檔案時,必須要將該檔案自伺服器上下載下來後才能修改。 也因此該檔案在伺服器與用戶端都會存在。此時,萬一有一天修改某個檔案, 卻忘記將資料上傳回主機,等過了一陣子之後,如何知道那個檔案才是最新的?

7 SAMBA 簡介-[2] Samba 檔案系統是架構在 NetBIOS 通訊協定上面所開發出來的
NetBIOS 是用來進行機器之間通訊的軟體介面 (API)。在此提供了名稱服務, 它允許連線至網路的機器保留自己的名稱 Samba讓 Linux 系統可以加入 Windows 的系統當中來分享使用彼此的檔案資料

8 SMB 使用的 NetBIOS 通訊協定 (Network Basic Input/Output System)
SAMBA 簡介-NetBIOS SMB 使用的 NetBIOS 通訊協定 (Network Basic Input/Output System) 最早 IBM 發展出 NetBIOS 的目的僅是要讓區域網路內少數電腦進行網路連結的一個通訊協定,因此NetBIOS 是無法跨路由 (Router / Gateway)的。 所以微軟的網路架構就使用了它來進行溝通的。 而 SAMBA 最早時,是想要讓 Linux 系統可以加入 Windows 的系統當中來分享使用彼此的檔案資料的,所以 SAMBA 就架構在 NetBIOS 發展出來。 因NetBIOS 是無法跨路由的,所以SAMBA理論上也是無法跨越路由的。因此另外使用 NetBIOS over TCP/IP 的技術,就可以跨越路由。不過目前 SAMBA 還是比較廣泛的使用在 LAN 裡面。

9 SAMBA 常見的應用 分享檔案與印表機服務 可提供使用者登入 Samba 主機時的身份認證,以提供不同身份者的個別資料
可進行 Windows 網路上的主機名稱解析 (NetBIOS name) 可進行裝置分享 (例如 Zip, CDROM...)

10 SAMBA 常見的應用- FTP vs. 網路芳鄰
FTP 【File Transfer Protocaol】 - 網路上任一主機和另一部主機作檔案傳輸 網路芳鄰 - 透過網路,分享同『區域網路』間的資源

11 SAMBA 套件與其架構

12 SAMBA 所需套件 samba: 這個套件主要包含了 SAMBA 的主要 daemon 檔案 (smbd 及 nmbd)、 SAMBA 的文件檔 (document)、以及其他與 SAMBA 相關的 logrotate 設定檔及開機預設選項檔案等; Samba-common: 主要提供設定檔 ( smb .conf ) 、 smb .conf 語法檢驗的測試程式 (test parm)等 Samba-client: 提供Client 端所需的工具指令,如掛載檔案格式的執行檔 smbmount等

13 SAMBA 套件結構【1】 安裝完畢後,可以依序察看 Samba 的套件結構。與他相關的檔案基本上有這些東西:
/etc/samba/smb.conf: smb.conf 是 Samba 的主要設定檔名,主要在設 定工作群組、 NetBIOS 名稱以及分享的目錄等相 關設定,如果你的 distribution的SAMBA 設定檔 不在 /etc/samba/ 目錄當中,使用locate或find 等方式可找出。 /etc/samba/lmhosts: 目的在對應NetBIOS name與該主機名稱的IP,現 在通常啟動SAMBA,就能捉到此資訊,因此通常不 用設定。

14 Samba 套件結構【2】 /etc/samba/smbpasswd: 預設不存在,是SAMBA使用者密碼對應表。這個檔
案因包含使用者的密碼,權限方面擁有者需要是root。 /etc/samba/smbusers: 在Windows 與 Unix-like帳號分別為 administrator 及 root, 為對應兩者帳號關係,可用此設定。此檔案的使用須經由 smb.conf 內的『 username map 』項目來啟動。 testparm: 這個指令主要檢驗 samba 設定檔 smb.conf 的語法 正確與否,當編輯過 smb.conf 時,請務必使用此指 令檢查,避免錯誤。 testprns :測試定義在 printcap 檔裡的列表機

15 Samba 套件結構【3】 smbd, nmbd: 之前曾提過兩個主要daemon在此。 。
smbstatus: 列出目前 SMB server狀態。 smbpasswd: 如果SAMBA設定為需要規定使用者的帳號密碼,密碼 檔案的建立就需使用 smbpasswd 來建置。 smbclient: 當Linux主機想藉由『網路上的芳鄰』功能查看別台電 腦分享的目錄與裝置時,可用此查看。此指令也可用 在自己SAMBA主機上面,來查看是否設定成功。

16 Samba 套件結構【4】 smbmount: 在Linux上,可以透過 smbmount將遠端主機分享的檔案與目錄掛載到自己
的Linux主機上。不過,也可直接用 mount這個指令 進行同樣功能。 nmblookup: 測Samba Server 是否正確啟動,查出 NetBIOS name。 smbtree: 能夠查到工作群組與電腦名稱的樹狀目錄分佈圖。 /usr/share/doc/samba-<版本>: 包含SAMBA所有相關的技術手冊。

17 SAMBA 設定流程

18 SAMBA設定流程-網芳設定 既然 Samba 要加入Windows 的網芳中,所以設定方式應是要與網芳差不多。
早期 Windows 的網芳設定簡單,不過也因此, 產生麻煩的安全問題。後來在 Windows XP 的 sp2加入很多預設防火牆機制,因此網芳的預設限制: 主機間須在同一網域,否則要修改windows預設防火牆 最好設定為同一工作群組 主機名稱不可相同 (NetBIOS name) 專業版 Windows XP 最多僅能提供同時十個用戶連線到網芳。

19 SAMBA設定流程-網芳設定(續) 叫出檔案總管,然後在要分享的目錄、磁碟或裝置 (如印表機) 上面按下右鍵,選擇『共用』,然後就能夠設定好分享的資料了。 最好建立一組給用戶使用的帳號與密碼,讓其他主機的使用者可以透過該帳號密碼連線進入網芳。

20 SAMBA設定流程- SAMBA設定 在 smb.conf 當中設定好工作群組、NetBIOS 主機名、密碼使用狀態等等與主機相關的資訊。
根據步驟 2 的設定,在 Linux 檔案系統當中建立好分享出去的檔案或裝置的使用權限。 根據步驟 2 的設定,以 smbpasswd 建立起使用者的帳號及密碼。 啟動 Samba 的 smbd, nmbd 服務,開始運轉。

21 SAMBA設定流程-smb.conf設定檔的資訊
/etc/Samba/smb.conf: Samba 主要設定檔名 檔案其實可分為兩部份來看: 主機資訊:[global] 分享的資訊:以個別的目錄名稱為依據 【註】在 smb.conf 當中, 『#』與『 ;』 都是註解符號

22 smb.conf 基本組態設定

23 smb.conf 基本組態設定【1】 [global]設定 workgroup = <工作群組>注意,主機群要相同
netbios name =  <伺服器名稱>每部主機均不同 server string = <說明>隨便寫即可 max log size = <KB> security = <安全等級>share、user、server、domain share: 為最寬鬆等級,不須認證程序即可存取 user: 認證user可否存取,使用 SAMBA 本身的密碼資料庫, 密碼資料庫與底下的 smb passwd file 有關 server:另一台smb server來負責認證user domain:當Samba Server加入NT網域時,另一台NT網域控制站 主機來認證

24 smb.conf 基本組態設定【1】(續) encrypt passwords = <Yes 代表密碼要加密>
承前,server和domain是使用外部主機的密碼,也就是SAMBA是用戶端之意,如果設定這個項目,還得要提供『password server = IP』的設定值才行。 encrypt passwords = <Yes 代表密碼要加密> 注意那個 passwords 要有 s 才對! smb passwd file = <密碼放置的檔案> 通常是 /etc/samba/smbpasswd

25 smb.conf 基本組態設定【2】 [Homes][分享目錄] comment:此目錄註解說明
path :在網芳當中看到的是 [分享] 的名稱,實際操作的檔案系統則是在 path 裡頭所設定的。 public:是否讓所有可以登入的使用者看到這個項目 valid users = 使用者,這個項目可以指定能夠進入到此資源的特定使用者 guest ok:是否公開分享,若為否則須進行身份驗證 read only:是否唯讀 writeable:設定資源是否以可寫方式來分享

26 smb.conf 基本組態設定【2】(續) [分享名稱] :這個分享名稱很重要,它是一個『代號』。 舉例來說,在 Windows 當中使用『共用』來分享網芳時,假設將『D:\game』分享出來, 系統還會要輸入一個『在網路上面的名稱』,假設輸入為『My_Games』, 那麼之後在網芳看到的這個資料夾 『 D:\game 』, 名稱其實是『\\你的IP\My_Games』。 read only 與 writable 為相似的設定值。如果 writable 在這裡設定為 no ,亦即不可寫入,與 read only則互相抵觸,此時,最後出現的設定值為主要的設定。

27 SAMBA 檔案功能介紹

28 SAMBA 檔案功能介紹 smbclient:可登入 Windows 機器,也可測Samba Server 是否運作正常
是否運作正常  smbstatus:顯示目前 client 連到 Samba Server 連線狀況 smbpasswd:建立登入到 Samba Server 的登入密碼 testparm :測試 smb.conf 組態檔定義是否語法正確  testprns :測試定義在 printcap 檔裡的列表機 nmblookup:測Samba Server 是否正確啟動

29 SAMBA 相關分享程式與加密程式 (smbclient)(smbpasswd)

30 Samba 相關分享程式 smbclient
列出server分享給client的清單 /smbclient –L //HostName –U username -L:分享狀態之顯示 HostName:輸入Samba server的主機名稱或IP 位置 –U:client端使用者名稱

31 Samba相關加密程式 smbpasswd
使用者更改密碼之設定 /etc/Samba/smbpasswd –a username username:使用者名稱,使用者必須是Linux系統內合法使用者才行。 -a:新增使用者

32 SAMBA 安裝

33 SAMBA 安裝-套件 SAMBA中有以下必要的套件需要安裝: samba samba-common samba-client
主要包含了 SAMBA 的主要執行檔案 (smbd 及 nmbd)、 文件檔 (document)、以及其他與 SAMBA 相關的 logrotate 設定檔及開機預設選項檔案等 samba-common 主要提供了 SAMBA 的主要設定檔 (smb.conf) 、 smb.conf 語法檢驗的測試程式 (testparm)等等 samba-client 當 Linux 做為 SAMBA Client 端時,所需要的工具指令,例如掛載 SAMBA 檔案格式的執行檔 smbmount 等等。

34 SAMBA 安裝 – 安裝方式 以 yum 來安裝 以 CentOS 內建Add/Remove Software 圖形化功能來安裝
yum –y install samba samba-common samba-client 以 CentOS 內建Add/Remove Software 圖形化功能來安裝

35 SAMBA 安裝 – [1] 點選Applications底下的Add/Remove Software

36 SAMBA 安裝 – [2] 選擇Search輸入samba按下Search

37 SAMBA 安裝 – [3]

38 SAMBA 安裝 – [4]

39 SAMBA 組態設定

40 SAMBA 組態設定 – [1] 使用SSH登入或直接使用Terminal

41 SAMBA 組態設定 – [2] SAMBA設定檔位在/etc/samba

42 SAMBA 組態設定 – [3] 輸入vi smb.conf 來修改設定檔內容

43 SAMBA 組態設定 – [4] vi 指令簡易說明 在smb.conf中”;”跟”#”都是註解 :a :輸入 :w :儲存 :q :離開
ESC :退出編輯模式 在smb.conf中”;”跟”#”都是註解

44 SAMBA 組態設定 – [global] [global]的設定 workgroup = MYGROUP
# 不分大小寫,設定群組名稱 netbios name = Samba # 主機名稱 server string = Samba Server # 主機說明 security = user # 共有五種安全等級(ADS, server, domain, user, share) encrypt passwords = yes # 設定 Samba 使用加密方式傳送密碼 

45 SAMBA 組態設定 – security 介紹
ADS:使用windows的AD Server來認證存取資源。 domain:當 Samba Server 加入 NT 網域時,藉由另一台 NT 網域控制站主機來進行認證的工作。 server:經由另外一台 SMB Server 來負責帳號密碼的檢查工作。 share:Client 端不須經過認證程序,即可存取所分享的資源。 user:使用者需先通過認證方可存取,而帳號密碼的檢查工作為 Samba 本身來負責。此為預設值。

46 SAMBA 組態設定 – 分享目錄設定 [ccc] 分享資料夾的名稱 # 說明文字 path = /temp/ccc # 分享的路徑
comment = HA HA HA # 說明文字 path = /temp/ccc # 分享的路徑 valid users = julia mary # 只有julia與mary能使用此資源 browseable = yes # 瀏覽目錄 read only = yes # 只能讀取資料

47 SAMBA 組態設定 – 建立目錄及權限[1] 請先切回根目錄 cd / 然後觀看各目錄的權限ls -l

48 SAMBA 組態設定 – 建立目錄及權限[2] 進入開放權限最多的 tmp 然後創資料夾mkdir ccc

49 SAMBA 組態設定 – 建立目錄及權限[3] 變更 ccc 的權限為 777 即可讓登入後的 julia 跟 mary 可以存取 ccc 內的資料

50 SAMBA 組態設定 – 完成設定 testparm: /etc/rc.d/init.d/smb restart : 重新啟動SAMBA
檢查smb.conf區段的設定 /etc/rc.d/init.d/smb restart : 重新啟動SAMBA smbstatus :顯示資源被使用情形

51 SAMBA 使用者設定

52 SAMBA 使用者設定 - [1] 替使用者於Samba建立帳號密碼: 變更密碼的方法 若要停用或重新啟動帳號,其方法如下:
smbpasswd -a [使用者帳號](帳號需為Linux帳號) New SMB password: 輸入密碼 Retype new SMB password: 再輸入密碼 變更密碼的方法 smbpasswd [使用者帳號] 若要停用或重新啟動帳號,其方法如下: 停用: smbpasswd –d 使用者帳號 啟用: smbpasswd –e 使用者帳號

53 SAMBA 使用者設定 – [2] 查看使用者資料 pdbedit –L #列出所有使用者 pdbedit –v 使用者帳號
#列出使用者詳細資料

54 SAMBA 設定實例

55 SAMBA 設定實例 – 範例 假設今天要將我們的電腦做以下設定: 電腦名稱取名為HOHO 加入群組LULU
分享一個名叫HAHA的目錄,並指定/tmp/HAHA為Linux上之目錄;且設定只有moo群組的使用者可以寫入。

56 [global] SAMBA 設定實例 - smb.conf vi /etc/samba/smb.conf
netbios name = HOHO ;設定電腦名稱 workgroup = LULU ;設定群組 security = user ;驗證方式 encrypt passwords = yes ;密碼加密

57 SAMBA 設定實例 - 建立資料夾及權限 mkdir /tmp/HAHA ;建立資料夾
chgrp moo /tmp/HAHA ;改變建立群組 chmod 775 /tmp/HAHA ;修改權限

58 SAMBA 設定實例 - 目錄設定 [mgr_files] ;分享目錄 path = /home/samba_files ;Linux上目錄
read only = yes ;只能讀取 write list ;能寫入的人員 備註: @moo 意思是”moo”這個群組的人員

59 Windows 連線 SAMBA

60 Windows 連線 SAMBA 輸入於SAMBA中建立之帳號密碼

61 Linux 連線 SAMBA

62 Linux 連線 SAMBA – [1] 點選Places/Networks Services

63 Linux 連線 SAMBA – [2] 選擇連線群組

64 Linux 連線 SAMBA – [3] 點選File/Connect to Server

65 Linux 連線 SAMBA – [4] Server:主機名稱 Share:分享目錄 [Folder]:資料夾
User Name: 使用者帳號 Domain Name: 網域名稱 Name to use for connection: 建立於桌面連線的名稱

66 Linux 連線 SAMBA – [5] 再輸入使用者密碼即可進入主機分享目錄

67 Linux 連線 SAMBA – [6] 建立完後桌面會顯示

68 Linux 連線 SAMBA – [7] 如果已知道Server資料直接點選Places/Connection to Server
Server Type 選擇 Windows Share

69 SAMBA 疑難雜症

70 SAMBA 疑難雜症 – 如法進入home [1]
Q:如法進入home(個人帳號)資料夾

71 SAMBA 疑難雜症– 如法進入home [2]
查看CentOS內右上角是否有顆星星(SELinux)

72 SAMBA 疑難雜症– 如法進入home [3]
問題是由於SELinux使用者權限控管關係

73 SAMBA 疑難雜症– 如法進入home [4]
輸入set sebool –P samba_enable_home_dirs=1 即可正常連線

74 SAMBA 疑難雜症 – 無法連線網芳 [1] Q:當進入網芳發現有群組名稱卻無法連線, 或進入群組後發現沒有主機名稱時

75 SAMBA 疑難雜症 – 無法連線網芳 [2] 進入System/Administration/Security Level and Fiewall

76 SAMBA 疑難雜症 – 無法連線網芳 [3] 查看防火牆選項中是否有讓SAMBA通過(打勾為允許)

77 參考來源 藍色部落 -- Linux網管實驗室 鳥哥的linux私房菜 UNIX電子書
鳥哥的linux私房菜 UNIX電子書


Download ppt "Windows與Linux資源共享 SAMBA"

Similar presentations


Ads by Google