<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## 16.1 什么是 SAMBA 在這個章節中,我們要教大家跳的是熱情有勁的巴西 SAMBA 舞蹈... 喔不~搞錯了~是要向大家介紹 SAMBA 這個好用的服務器啦!咦!怪了! 怎么服務器的名稱會使用 SAMBA 呢?還真是怪怪的呢!那么這個 SAMBA 服務器的功能是什么呢?另外, 它最早是經由什么樣的想法而開發出來的呢?底下就讓我們慢慢的談一談吧! * * * ### 16.1.1 SAMBA 的發展歷史與名稱的由來 在早期的網絡世界當中,檔案數據在不同主機之間的傳輸大多是使用 [FTP](http://linux.vbird.org/linux_server/0410vsftpd.php) 這個好用的服務器軟件來進行傳送。不過使用 FTP 傳輸檔案卻有個小小的問題, 那就是你無法直接修改主機上面的檔案數據!也就是說,你想要更改 Linux 主機上面的某個檔案時,你必須要將該檔案自服務器下載后才能修改。 也因此該檔案在服務器與客戶端都會存在。這個時候,萬一如果有一天你修改了某個檔案, 卻忘記將數據上傳回主機,那么等過了一陣子之后,呵呵,你如何知道那個檔案才是最新的? * 讓檔案在兩部主機之間直接修改: NFS 與 CIFS 既然有這樣的問題,那么好吧,我可不可以在客戶端的機器上面直接使用服務器上面的檔案, 如果可以在客戶端直接進行服務器端檔案的存取,那么我在客戶端就不需要存在該檔案數據啰,也就是說, 我只要有 Server 上面的檔案資料存在就可以啦!有沒有這樣的文件系統啊! 很高興的是,[第十三章的 NFS](http://linux.vbird.org/linux_server/0330nfs.php) 就是這樣的文件系統之一啦!我只要在客戶端將 Server 所提供分享的目錄掛載進來, 那么在客戶端的機器上面就可以直接取用 Server 上的檔案資料啰,而且, 該數據就像是我客戶端上面的 partition 一般,真是好用! 而除了可以讓 Unix Like 的機器互相分享檔案的 NFS 服務器之外,在微軟 (Microsoft) 操作系統上面也有類似的文件系統,那就是 Common Internet File System, CIFS 這個咚咚啦!CIFS 最簡單的想法就是目前常見的『網絡上的芳鄰』咯! Windows 系統的計算機可以透過桌面上『網絡上的芳鄰』來分享別人所提供的檔案數據哩!真是方便。 不過,NFS 僅能讓 Unix 機器溝通, CIFS 只能讓 Windows 機器溝通。傷腦筋,那么有沒有讓 Windows 與 Unix-Like 這兩個不同的平臺相互分享檔案數據的文件系統呢? * 利用封包偵測逆向工程發展的 SMB Server 在 1991 年一個名叫 Andrew Tridgell 博士班研究生就有這樣的困擾,他手上有三部機器,分別是跑 DOS 的個人計算機、DEC公司的 Digital Unix 系統以及 Sun 的 Unix 系統。在當時, DEC 公司有發展出一套稱為 PATHWORKS 的軟件,這套軟件可以用來分享 DEC 的 Unix 與個人計算機的 DOS 這兩個操作系統的檔案數據,可惜讓 Tridgell 覺得較困擾的是,Sun 的 Unix 無法藉由這個軟件來達到數據分享的目的 ([注1](#ps1))。 這個時候 Tridgell 就想說:『咦!既然這兩部系統可以相互溝通,沒道理 Sun 就必需這么苦命吧?可不可以將這兩部系統的運作原理找出來,然后讓 Sun 這部機器也能夠分享檔案數據呢?』, 為了解決這樣的的問題,他老兄就自行寫了個 program 去偵測當 DOS 與 DEC 的 Unix 系統在進行數據分享傳送時所使用到的通訊協議信息,然后將這些重要的信息擷取下來, 并且基于上述所找到的通訊協議而開發出 Server Message Block (SMB) 這個文件系統,而就是這套 SMB 軟件就能夠讓 Unix 與 DOS 互相的分享數據啰! **Tips:** 再次的給他強調一次,在 Unix Like 上面可以分享檔案數據的 file system 是 NFS,那么在 Windows 上面使用的『網絡上的芳鄰』所使用的文件系統則稱為 Common Internet File System, CIFS ![](https://box.kancloud.cn/2016-05-13_5735736501917.gif) * 取名 SAMBA 的主因 ^_^ 既然寫成了軟件,想一想,總是需要注冊一下商標吧!因此 Tridgell 就去申請了 SMBServer (Server Message Block 的簡寫) 這個名字來做為他撰寫的這個軟件的商標,可惜的是,因為 SMB 是沒有意義的文字,因此沒有辦法達成注冊。既然如此的話,那么能不能在字典里面找到相關的字詞可以做為商標來注冊呢? 翻了老半天,呵呵!這個 **S**A**MB**A 剛好含有 SMB , 又是熱情有勁的拉丁舞蹈的名稱,不然就用這個名字來做為商標好了!這成為我們今天所使用的 SAMBA 的名稱由來啦! ^_^ * * * ### 16.1.2 SAMBA 常見的應用 由上面說明的 SAMBA 發展緣由,你就應該不難知道, SAMBA 最初發展的主要目就是要用來溝通 Windows 與 Unix Like 這兩個不同的作業平臺,那么 SAMBA 可以進行哪些動作呢?想一想網芳能做的吧! * 分享檔案與打印機服務; * 可以提供用戶登入 SAMBA 主機時的身份認證,以提供不同身份者的個別數據; * 可以進行 Windows 網絡上的主機名解析 (NetBIOS name) * 可以進行裝置的分享 (例如 Zip, CDROM...) 底下我們來談幾個 SAMBA 服務器的應用實例吧! * 利用軟件直接編修 WWW 主機上面的網頁數據 相信很多人都是利用個人計算機將網頁制作完畢之后,再以類似 FTP 之類的服務將網頁上傳到 WWW 主機的, 但這樣有個困擾,那就是同時在客戶端與 WWW 主機上頭都有一份網頁數據,常常會忘記哪一份是最新的, 最麻煩的是,有時候下載下來的檔案已經經過好多修改了,卻在下次的 FTP 作業,不小心又下載一次舊數據, 結果將已經修改過的數據覆蓋過去~天吶!又要重寫一遍.....真是討厭! 如果你有安裝 SAMBA 服務器的設定的話,那么透過『網芳』的功能,直接聯機遠程服務器所提供的目錄, 如此一來你可以直接在你的個人計算機上面修改主機的檔案數據,只有一份正確的數據而已喔! 這就有點像是『在線編修』呢,一修改完成,在 Internet 上面可以立刻檢驗,方便的很吶! * 做成可直接聯機的文件服務器 在鳥哥過去待過的實驗室中,由于計算機數量不多,研究生常常會使用到不同的計算機 (因為大家都得搶沒有人用的計算機啊!) ,此外,也常常有研究生拿自己的 NoteBook 來工作,因此,有些團隊的數據就分散在各個計算機當中,使用上相當的不方便。 這個時候,鳥哥就使用 SAMBA 將硬盤空間分享出來,由于使用者要登入 SAMBA 這個服務器主機時需要輸入用戶數據 (賬號與密碼),而不同的登入者會取得不一樣的目錄資源,所以可以避免自己的數據在公用計算機上面被窺視, 此外,在不同的公用計算機上面都可以登入 SAMBA 主機,數據的使用上面真是相當的棒啊! * 打印機服務器 SAMBA 除了分享文件系統外,也可以分享打印機喔,鳥哥的研究室好幾部計算機就是直接以 Linux 分享的打印機來印制報告的。你會說『啊 Windows 也可以辦的到啊!沒有什么了不起的!』是啊。 但是鳥哥認為,用 Linux 做為服務器主機時畢竟還是比較穩定一點,可以 24 小時且全年無休的努力工作吶。此外,因為目前透過『網絡上的芳鄰』來攻擊局域網絡的 Windows 操作系統的計算機病毒實在是太多了,防不勝防, Linux 對于這樣的攻擊并沒有很大的影響 (因為常見的攻擊手法均針對 Windows 而來~),所以也比較安全一些說~ * * * SAMBA 的應用挺廣泛的,尤其對于局域網絡內的計算機來說,更是一項不可多得的好用的服務器, 雖然或許你會說,SAMBA 的功能不過是模仿 Windows 的網芳以及 AD 相關的軟件, 那我直接使用 Windows 不就 OK 了?可惜的是, Windows XP 對于網芳的聯機限制依版本而有所不同, 以企業常見的專業版 (Professional) 來說,他僅能提供最多同時十個聯機到網芳的聯機能力,這...不太夠用吧! 所以啰,SAMBA 穩定、可靠又沒有限制聯機數,值得學習吧!^_^!更多的應用你可以自行發掘吶! * * * ### 16.1.3 SAMBA 使用的 NetBIOS 通訊協議 事實上,[就像 NFS 是架構在 RPC Server 上面](http://linux.vbird.org/linux_server/0330nfs.php)一樣, SAMBA 這個文件系統是架構在 NetBIOS (Network Basic Input/Output System, NetBIOS) 這個通訊協議上面所開發出來的。既然如此,我們當然就要了解一下 NetBIOS 啰! 最早 IBM 發展出 NetBIOS 的目的僅是要讓局域網絡內少數計算機進行網絡鏈接的一個通訊協議而已, 所以考慮的角度并不是針對大型網絡,因此,這個 NetBIOS 是無法跨路由的 (Router / Gateway)。這個 NetBIOS 在局域網絡內實在是很好用, 所以微軟的網絡架構就使用了這個咚咚來進行溝通的吶!而 SAMBA 最早發展的時候,其實是想要讓 Linux 系統可以加入 Windows 的系統當中來分享使用彼此的檔案數據的,所以當然 SAMBA 就架構在 NetBIOS 發展出來啰。 不過 NetBIOS 是無法跨路由的,因此使用 NetBIOS 發展起來的服務器理論上也是無法跨越路由的呢! 那么該服務器的使用范圍不就受限相當的多了?好在,我們還有所謂的 NetBIOS over TCP/IP 的技術呢!這是什么樣的技術啊? 舉個例子來說好了,我們知道 TCP/IP 是目前網絡連接的基本協議,現在我們將 NetBIOS 想成是一封明信片, 這個明信片只能讓你自己欣賞而已,如果今天我們要將這個明信片送到遠方的朋友那邊時!就需要透過郵件系統 (例如郵局啦、國際快遞啦等等的) 來傳送了!這個 TCP/IP 就可以視為郵件傳遞系統啦!透過這個 NetBIOS over TCP/IP 的技術,我們就可以跨路由的使用 SAMBA 服務器所提供的功能咯! 當然啦,目前 SAMBA 還是比較廣泛的使用在 LAN 里面說。 **Tips:** 或許你會發現在 Windows 網絡設定里面常常看到 NetBEUI 這個咚咚,那是什么呢?那個是 NetBIOS Extened User Interface 的簡寫,也是 IBM 在 NetBIOS 發展出來之后的改良版本。雖然這兩者的技術不太相同, 不過,我們只要知道一些簡單的概念就可以了!所以,在這里我們不針對 NetBEUI 來介紹。 ![](https://box.kancloud.cn/2016-05-13_5735736501917.gif) * * * ### 16.1.4 SAMBA 使用的 daemons NetBIOS 當初發展時就著眼在局域網絡內的快速數據交流,而因為是定義在局域網絡內,因此他并沒有使用類似 TCP/IP 之類的傳輸協議,也就不需要 IP 的設定。如此一來數據如何在兩部主機之間交流呢? 其實主機在 NetBIOS 協議當中的定義為使用『NetBIOS Name』,每一部主機必須要有不同的 NetBIOS Name 才行, 而檔案數據就是在不同的 NetBIOS name 之間溝通啰!我們以一個網芳的設定來作簡單的說明好了: 1. 取得對方主機的 NetBIOS name 定位該主機所在: 當我們想要登入某部 Windows 主機使用他所提供的檔案數據時,必需要加入該 Windows 主機的群組 (Workgroup),并且我們的機器也必需要設定一個主機名,注意喔,這個主機名跟 Hostname 是不一樣的,因為這個主機名是架構在 NetBIOS 協議上的,我們可以簡單的稱呼他為 NetBIOS Name。在同一個群組當中,NetBIOS Name 必需要是獨一無二的喔! 2. 利用對方給予權限存取可用資源: 在我們找到該主機名后,是否能登入該對方主機或者是取用對方主機所提供的資源, 還要看對方 Windows 主機有沒有提供我們使用的權限吶!所以,并不是登入該 Windows 主機之后我們就可以無限制的取用該主機的檔案資源了。也就是說,如果對方主機允許你登入, 但是卻沒有開放任何資源讓你取用,呵呵,登入主機也無法查看對方的硬盤里面的數據的啦! 我們的 SAMBA 則是透過兩支服務來控制這兩個步驟,分別是: * nmbd :這個 daemon 是用來管理工作組啦、NetBIOS name 啦等等的解析。主要利用 UDP 協議開啟 port 137, 138 來負責名稱解析的任務; * smbd :這個 daemon 的主要功能就是用來管理 SAMBA 主機分享的目錄、檔案與打印機等等。 主要利用可靠的 TCP 協議來傳輸數據,開放的端口為 139 及 445(不一定存在) 。 所以啰, SAMBA 每次啟動至少都需要有這兩個 daemons 喔!這可不要忘記啰!而當我們啟動了 SAMBA 之后,主機系統就會啟動 137, 138 這兩個 UDP 及 139 這一個 TCP 埠口,這也不要忘記了! 因為后面設定防火墻的時候,還會使用到這三個 port 的呢! * * * ### 16.1.5 聯機模式的介紹 (peer/peer, domain model) SAMBA 服務器的應用相當的廣泛,而且可以依照不同的網域聯機方式,與不同的用戶賬號密碼的控管方式來進行分類。 例如最常見的 Workgroup 及 Domain 兩種方式的聯機模式呢!底下我們就是要來談一談這兩種最常見的局域網絡的聯機模式: peer/peer (對等模式) 及 domain model (主控模式)。 * peer/peer (Workgroup model, 對等模式): peer 有同等、同輩的意思存在,所以由字面上來看,peer/peer 當然就是指兩部主機的地位相等啰! 這是什么意思呢?簡單的說,假如在局域網絡里面的所有 PC 均可以在自己的計算機上面管理自己的賬號與密碼, 同時每一部計算機也都具有獨力執行各項軟件的能力,只是藉由網絡將各個 PC 鏈接在一起而已的一個架構, 所以,每一部機器都是可以獨立運作的喔! 這樣的架構在目前小型辦公室里面是最常見的。例如辦公室里面有十個人,每個人桌上可能都安裝有一套 Windows 操作系統的個人計算機,而這十部計算機都可以獨立進行辦公室軟件的執行啊、獨立上網啊、獨立玩游戲啊等等的, 因為這十部計算機都可以獨立運作,所以不會有一部計算機關掉,其他的計算機就無法工作的情況發生,這就是 peer/peer 的典型架構。 那在這樣的架構底下,要如何透過網絡聯機來取得對方的數據呢?舉例來說,以下圖的架構為例,在這樣的架構下,假設 vbird (PC A) 寫了一個報告書,而 dmtsai (PC B) 想要以網絡直接取用這個報告書時,那 dmtsai 就必須要知道 vbird 使用的密碼,并且 vbird 必須要在 PC A 上面啟用 Windows 的『資源共享(或者是共享)』之后,才能夠讓 dmtsai 聯機進入喔 (此時 PC A 為 Server) !而且, vbird 可以隨時依照自己的喜好來更改自己的賬號與密碼,而不受 dmtsai 的影響。不過,dmtsai 就得要取得 vbird 同意取得新的賬號與密碼后,才能夠登入 PC A 喔!反過來說,同樣的, vbird 要取得 dmtsai 的數據時,同樣需要取得 PC B 的賬號與密碼后,才能夠順利登入啊 (此時 PC A 為 Client 喔)!因為 PC A, PC B 的角色與地位都同時可以為 Client 與 Server ,所以就是 peer/peer 的架構了! ![](https://box.kancloud.cn/2016-05-13_5735da731b556.gif) 圖 16.1-1、peer/peer 聯機的示意圖 使用 peer/peer 的架構的好處是每部計算機均可以獨立運作,而不受他人的影響!不過, 缺點就是當整個網域內的所有人員都要進行數據分享時,光是知道所有計算機里面的賬號與密碼,就會很傷腦筋了! 所以, Peer/Peer 的架構是比較適合 (1)小型的網域,或者是 (2)沒有需要常常進行檔案數據分享的網絡環境,或者是 (3)每個使用者都獨自擁有該計算機的擁有權(就是說,該計算機是用戶的,而不是公用的啦!) 而,如果該單位的所有 PC 均是公有的 (例如學校的計算機教室環境),而且你需要統一控管整個網域里面的賬號與密碼的話, 那就得使用底下的 domain models 了! * domain model (主控模式) 假設今天你服務的單位有 10 部計算機,但是你的單位有 20 個員工,這也就是說,這 20 個員工輪流搶著用這 10 部計算機。如果每部計算機都如同 peer/peer 的架構時,那么每部計算機都需要輸入這 20 個員工的賬號與密碼來提供他們登入喔。而且,今天假如有個員工想要變更自己的密碼時,就需要到 10 臺計算機上面進行密碼變更的作業!否則他就必須要記得這 10 部計算機里面,那一部計算機是記憶那一個密碼...好煩那~ 如果上述是這樣的情況,使用 peer/peer 架構就不是一個好方法了!這個時候就需要藉由 domain model 來達成你的需求啦!所謂的 domain model 概念其實也很簡單,既然使用計算機資源需要賬號與密碼, 那么我將所有的賬號與密碼都放置在一部主控計算機 (Primary Domain Controller, PDC) 上面,在我的網域里面,任何人想要使用任何計算機時,都需要在屏幕前方輸入賬號與密碼,然后通通藉由 PDC 服務器的辨識后,才給予適當的權限。也就是說,不同的身份還具有不一樣的計算機資源權限就是了! 例如底下的圖示: ![](https://box.kancloud.cn/2016-05-13_5735da732f931.gif) 圖 16.1-2、domain model 聯機的示意圖 PDC 服務器控管整個網域里面的各個機器 (PC A ~ PC D) 的賬號與密碼的信息,假如今天有個使用者賬號名稱為 vbird ,且密碼為 12345 時,他不論使用哪一部計算機 (PC A ~ PC D) 只要在屏幕前方輸入 vbird 與他的密碼,則該機器會先到 PDC 上面查驗是否有 vbird 以及 vbird 的密碼,并且 PDC 主機會給予 vbird 這個用戶相關的計算機資源權限。當 vbird 在任何一部主機上面登入成功后,他就可以使用相關的計算機資源了! 這樣的架構比較適合人來人往的企業架構,當系統管理員要控管新進人員的計算機資源使用權時,可以直接針對 PDC 來修改就好了,不需要每一部主機都去修修改改的,對于系統管理員來說,這樣的架構在控管賬號資源上,當然是比較簡單的啦! 各種架構適用的環境與適用的人都不相同,并沒有那個是最好啦!請依照你的工作環境來選擇聯機的模式啰!當然, SAMBA 可以達到上述兩種模式的啦!底下我們會分別來介紹喔! * * *
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看