如何搭建與Windows客戶機結合使用的Samba文件服務器?

如何搭建與Windows客戶機結合使用的Samba文件服務器?

2014-08-25 09:36  布加迪編譯  51CTO  字號:T | T

一鍵收藏,隨時查看,分享好友!

據Samba項目網站聲稱,Samba是一組開源/免費軟件套件,它爲SMB/CIFS客戶機提供了無縫順暢 的文件和打印服務。不像實現SMB/CIFS網絡協議的其他系統(比如面向HP-UX的LM Server、面向OS/2的LAN Server或VisionFS),Samba(及其源代碼)可以免費獲取(最終用戶不需要支付任何費用),並且允許Linux/Unix服務器和 Windows/Unix/Linux客戶機之間實現協同運行。

AD:2014WOT全球軟件技術峯會北京站 課程視頻發佈

11月21日-22日 與WOT技術大會相約深圳 現在搶票

據Samba項目網站聲稱,Samba是一組開源/免費軟件套件,它爲SMB/CIFS客戶機提供了無縫順暢的文件和打印服務。不像 實現SMB/CIFS網絡協議的其他系統(比如面向HP-UX的LM Server、面向OS/2的LAN Server或VisionFS),Samba(及其源代碼)可以免費獲取(最終用戶不需要支付任何費用),並且允許Linux/Unix服務器和 Windows/Unix/Linux客戶機之間實現協同運行。

正是由於這些原因,在不同的操作系統(並非僅僅只有Linux)共存的網絡環境下,Samba是文件服務器的優選解決方案――而最常見的網絡架構就是多個微軟Windows客戶機訪問一臺安裝有Samba的Linux服務器,我們將在本文中探討這種情形。

要注意:另一方面,如果我們的網絡完全由基於Unix的客戶機(比如Linux、AIX或Solaris等等)組成,可以考慮使用NFS(不過在這種情況下Samba仍是一種選擇),這時NFS的速度更快。

將Samba安裝在Debian和CentOS上

在我們開始着手安裝之前,可以使用操作系統的軟件包管理系統,尋找關於Samba的信息:

在Debian上:

# aptitude show samba

在CentOS上:

# yum info samba

在下面這個屏幕截圖中,我們可以看到“aptitude show samba”的輸出結果(“yum info samba”會得到類似的結果):

現在不妨安裝Samba(下面這個屏幕截圖對應於安裝到Debian 7 [Wheezy]服務器上的情況):

在Debian上:

# aptitude install samba

在CentOS上:

# yum install samba

將用戶添加到Samba

如果是4.x之前的版本,想將用戶添加到Samba,就需要一個本地Unix帳戶:

# adduser <username>

下一步,我們需要使用帶“-a”選項的smbpasswd命令,將用戶添加到Samba,該選項指定隨後用戶名應添加到本地smbpasswd文件。系統會提示我們輸入一個密碼(該密碼沒必要與本地Unix帳戶的密碼一樣):

# smbpassword -a <username>

最後,我們將訪問系統中用作Samba共享區的一個目錄的權限授予用戶xmodulo(如果需要的話,還可以將訪問權限授予其他用戶)。要完成這一 步,只需用文件編輯器(比如Vim)打開/etc/samba/smb.conf文件,瀏覽到文件末尾,使用描述性名稱,創建一段代碼(將名稱括在方括號 內),比如[xmodulo]:

# SAMBA SHARE  [xmodulo]  path = /home/xmodulo  available = yes valid users = xmodulo read only = no browseable = yes public = yes writeable = yes

現在我們必須重啓Samba;爲了以防萬一,使用testparm命令檢查smb.conf文件,查找有無語法錯誤:

# service samba restart  # testparm

 

要是有什麼錯誤,testparm結束運行後,就會如實報告。

將Samba共享區映射爲Windows 7 PC上的網絡驅動器

鼠標右擊Computer(電腦),選擇“Map network drive”(映射網絡驅動器):

鍵入安裝有Samba的那臺機器的IP地址,隨後鍵入共享區的名稱(這是smb.conf文件中刮在單括號內的名稱),並確保“Connect using different credentials”(使用不同的登錄資料來連接)複選框已勾選:

輸入之前用“smbpasswd -a”設置的用戶名和密碼:

進入到Computer(電腦),檢查網絡驅動器是否已正確添加上去:

爲了測試一下,不妨利用Samba的參考手冊頁創建一個PDF文件,並將它保存到/home/xmodulo目錄中:

下一步,我們可以證實該文件可以從Windows來進行訪問:

我們可以使用默認的pdf閱讀軟件打開該文件:

最後,不妨看一下我們能否將來自Windows的一個文件保存到剛映射的網絡驅動器。我們將打開change.log文件,該文件列出了Notepad++的功能特性:

然後試着將它作爲一個明文文件(.txt擴展名)保存到Z:\;然後,不妨看一下該文件在Linux中是否能瀏覽:

啓用配額

第一步,我們需要證實當前內核是不是已經過編譯並支持配額:

# cat /boot/config-$(uname -r) | grep -i config_quota

每一個文件系統最多有五種配額限制可予以實施:用戶軟限制、用戶硬限制、用戶組軟限制、用戶組硬限制和寬限時間。

現在我們將爲/home文件系統啓用配額,爲此在/etc/fstab文件中對應/home文件系統的那一行,將usrquota和grpquota掛載選項添加到現有的defaults選項;爲了讓變更生效,我們將重新掛載文件系統:

下一步,我們需要在/home中創建兩個文件,它們將充當用戶配額和用戶組配額的數據庫:分別是aquota.user和aquota.group。之後,我們將針對啓用配額的文件系統,創建當前磁盤使用表:

# quotacheck -cug /home  # quotacheck -avugm

儘管我們已爲/home文件系統啓用了配額,但我們還沒有對任何用戶或用戶組設置任何限制。檢查現有用戶/用戶組的配額信息:

# quota -u <username> # quota -g <groupname>

最後,後幾步包括:使用quotatool命令,爲每個用戶及/或每個用戶組指定配額(注意:可以使用edquota來執行這項任務,但quotatool更直觀簡單,不太容易出錯)。

想爲名爲xmodulo的用戶將軟限制設置在4 MB、將硬限制設置在5 MB,併爲xmodulo用戶組將軟限制和硬限制分別設置在10 MB和15 MB:

# quotatool -u xmodulo -bq 4M -l '5 Mb' /home  # quotatool -g xmodulo -bq 10M -l '15 Mb' /home

我們可以在Windows 7中看到結果(4.00MB中3.98MB閒置):

英文鏈接:http://xmodulo.com/2014/08/samba-file-server-windows-clients.html



  1. Windows與Linux文件系統互訪的幾種方法

【責任編輯:牛小雨 TEL:(010)68476606】


Windows與Linux文件系統互訪的幾種方法

2014-08-22 15:50  童燕羣  shentar.me  字號:T | T

一鍵收藏,隨時查看,分享好友!

首先,我們知道基於文件的幾種服務:ftp,sftp,這兩種服務都是文件傳輸服務,偏重於網絡傳輸,並不是實時互訪。通常,我們需要在遠程和本地同時操作同一個目錄,如:在Windows下使用各種強大的IDE編輯代碼,在Linux下編譯和運行該代碼……

AD:2014WOT全球軟件技術峯會北京站 課程視頻發佈

11月21日-22日 與WOT技術大會相約深圳 現在搶票

首先,我們知道基於文件的幾種服務:ftp,sftp,這兩種服務都是文件傳輸服務,偏重於網絡傳輸,並不是實時互訪。通常,我們需 要在遠程和本地同時操作同一個目錄,如:在Windows下使用各種強大的IDE編輯代碼,在Linux下編譯和運行該代碼。如果在Windows下編寫 好代碼再拷貝到Linux下編譯,這樣修改時很費事,直接在Linux下修改,還要同步回Windows,相當費事。當然有人會說,所有的工作都在 Linux下搞定,VI、Linux命令行足夠強大,沒有需要使用Windows系統的理由,本文的重點不在討論命令行熟練程度與工作效率的問題。

怎樣像訪問本地文件系統一樣訪問遠程的文件呢?如果遠程的系統與本地系統是不同類型的,又該如何做呢。

我們知道,在Windows系統之間,可以通過共享目錄的方式,讓遠程系統直接訪問。其實這裏是Windows提供一種遠程文件系統機制,NAS協 議的一種——CIFS協議。如果是Linux系統呢,同樣有另外一種NAS協議——NFS協議來實現遠程訪問。那麼這兩種NAS協議能否互通呢?答案是否 定的。雖然二者不能互通,但是,在Linux系統上面已經有了CIFS協議的服務端和客戶端的實現,這樣,無論是Linux給Windows共享還是 Windows給Linux共享都可以藉助這些已有的實現來做到了。

相反的,Windows上面有沒有NFS的客戶端或者服務端呢?也有,但是不常用,這裏就不詳細介紹了。

這裏主要圍繞着Linux上面使用CIFS協議來闡述如何實現兩個系統之間的跨文件系統,跨操作系統共享。按照上面的描述,有兩種方式來實現共享。Linux分別作爲CIFS的服務端和客戶端。下面分別就這兩種方式來說明操作步驟和簡單的原理介紹:

一、Samba軟件實現共享Linux文件系統給Windows用戶

Samba軟件被譽爲10大最有價值的開源軟件之第五位。其獲取方式非常容易,配置使用也非常簡單。下面以fedora系統爲例,先看一下本地是否 已經安裝好samba,如果/etc/init.d/smb 文件存在,則說明已經安裝好了samba軟件,否則使用如下命令安裝:

yum install samba

安裝完成後,修改配置文件,打開:/etc/samba/smb.conf,在文件末尾加上如下配置:

[root]    comment = root   path = /     creat mask = 64   writeable = yes     browseable = yes   valid users = root

這個配置的意思是,創建一個名爲root的共享,將根文件目錄“/”共享給用戶。允許登錄的用戶名是root。

然後給samba系統添加root用戶,使用如下命令:

smbpasswd -a root

按照提示設置root用戶的密碼。

重新啓動samba服務。

service smb restart

檢查smb進程是否已經運行:

root      1787  0.0  0.4  33068  4784 ?        Ss   21:51   0:00 smbd  root      1788  0.0  0.2  33068  2580 ?        S    21:51   0:00  \_ smbd

在需要訪問該Linux系統的Windows客戶機上面,打開Windows的資源管理器,在地址欄輸入:\\192.168.1.110

會發現,提示有一個共享root,雙擊訪問時,提示輸入用戶名和密碼,輸入此前配置的root用戶和密碼即可訪問。這裏就是Samba軟件實現了 CIFS的服務端,Windows資源管理作爲客戶端訪問遠程的共享文件系統。爲了更爲方便的使用該文件系統,還可以將該共享映射成一個本地的盤符,讓 Windows上面的各種工具像使用本地磁盤一樣使用該目錄。所有在Windows上面對該共享做的操作都會實時同步到Linux系統上面。

二、Linux訪問Windows的共享

上面的藉助於Samba的方式是大家常用的。還有一種,Windows系統天然就是一個CIFS的服務端和客戶端,既然Windows系統可以給 Windows系統共享目錄,那麼Linux系統能否訪問這些共享呢?答案是肯定的,由於有強大的VFS支撐,Linux支持掛載和訪問各種文件系統。 mount工具支持掛在CIFS甚至NTFS的文件系統。如果是Windows本機上面的Linux虛擬機,那麼可以直接通過虛擬機管理軟件,如 Vmware直接共享本地的磁盤分區給Linux系統,Linux系統根據Windows的磁盤分區的文件系統類型掛載即可。這裏不詳述該方案。

進入本段的正題,首先我們需要共享一個Windows的目錄:

下面以Windows XP爲例,Windows 7未做驗證,應該類似。在共享之前,首先需要確保Windows系統的server服務處於啓動狀態,如下圖:

server服務啓動

選擇需要共享的目錄,右鍵,屬性,選擇“共享”頁,如下圖:

配置共享

選擇在網絡上共享這個文件夾,並指定共享名。根據需要選擇是否允許遠程用戶修改該文件夾。這樣這個文件夾就被共享給遠程訪問了。

共享目錄

在Linux系統下掛載該共享:

 

[root@f2 ~]# mount -t cifs -o username="Test" //192.168.1.100/sourcecode /root/sourcecode  Password for Test@//192.168.1.100/sourcecode:

按照要求輸入指定用戶的密碼即可。

此時,Windows的共享sourcecode目錄就已經掛載到Linux系統上面了,Linux系統可以像訪問本地目錄一樣訪問該目錄了。

這種方法應該是更好的訪問方式,因爲一般而言,我們操作的文件和工作空間都是在Windows上面的,只有少數時候,需要在Linux上面進行編 譯,調試。但是用起來稍顯麻煩。注意,此前曾遇到過Windows系統與虛擬出來的Linux系統之間無法傳輸數據的問題,原因是Windows系統的防 火牆未開啓。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章