主機與虛擬機器之間方便地共享檔案 samba

2021-05-21 22:27:13 字數 3470 閱讀 1746

在前文中,我們已經建立了乙個虛擬機器,且在其上安裝了ubuntu系統,為了要在該ubuntu虛擬機器上進行linux開發還需要解決如下兩個問題:

1. 主機與虛擬機器相互間能夠ping通,且均能訪問英特網。

2. 主機與虛擬機器能夠簡單方便地共享檔案。

先說問題2的解決方法

要做到主機與虛擬機器進行檔案共享,其實方法很多,比如利用vmware tools等,但在這裡我選用的是samba。

先簡單介紹一下samba:

samba是linux和unix上實現smb(server message block)協議的乙個免費軟體,用於linux和windows主機之間共享檔案之用;samba 既可以用於windows和linux之間的共享檔案,也可用於linux和linux之間的共享檔案;不過對於linux和linux之間共享檔案有更好的網路檔案系統nfs。

在windows 網路中的每台機器既可以是檔案共享的伺服器,也可以是客戶機;samba 也一樣,比如一台linux的機器,如果架了samba server 後,它能充當共享伺服器,同時也能做為客戶機來訪問其它網路中的windows共享檔案系統,或其它linux的sabmba 伺服器。

我們在windows網路中,可以直接把共享資料夾當做本地硬碟來使用。在linux中,就是通過samba向網路中的機器提供共享檔案的,也可以把網路中其它機器的共享檔案掛載在本地機器上使用。

samba 主要是在windows和linux 系統共存的網路中使用;如果乙個網路環境裡都是linux或unix類的系統,就沒有必要用samba,可直接用nfs。

下面再接著記錄samba的安裝和配置過程:(有些命令僅適用於ubuntu系統,其他linux系統可能不一樣,但步驟都是一樣的)

第一步:安裝samba

#sudo apt-get install samba           //

#sudo apt-get install smbfs            //

第二步:新增linux使用者(在安裝完成linux系統後,一般已經有乙個linux使用者了,即在安裝過程中建立的那個,本例中為jack。在乙個

linux系統中當然可建立多個使用者,因為linux系統本身就是多使用者系統。如果只需要乙個使用者的話,此步驟可略)

#sudo useradd rose             //rose為新新增的使用者名稱

#sudo passwd rose             //為使用者名稱rose設定密碼,該命令回車後系統會提示你輸入密碼。

第三步:建立共享目錄:

//建乙個共享目錄,如sudo mkdir /home/rose/rose/share

#sudo chmod 777 /home/jack/share     //為建立的共享目錄設定許可權

第四步:為samba伺服器新增使用者

#sudo smbpasswd  -a jack     //新增並給使用者jack訪問samba伺服器設定密碼;注:登陸samba伺服器的使用者必須已是linux的使用者

第五步:建立samba配置檔案:

1. 備份現有的配置檔案

#sudo mv /etc/samba/smb.conf   /etc/samba/smb.conf.bak

2. 建立新的配置檔案

#sudo vim /etc/samba/smb.conf

[global]

workgroup = mygroup    //建立工作組

security = share             //設定samba的安全等級,user代表需要輸入使用者名稱和密碼;share則不需要輸入使用者名稱和密碼

guest ok = yes               //是否允許guest使用者訪問:yes or no

[share]                                //方框號中的share這個名字可以隨便取,它只是在windows的網路上的芳鄰中顯示的共享資料夾名

path = /home/jack/share   //設定共享資料夾的路徑,該路徑下的共享資料夾在第二步中已經建立。

valid users = jack              //說明這個share共享目錄只允許使用者jack訪問

public = no                        //no表示除了jack這個使用者外,其他使用者進入samba伺服器後看不見該共享目錄;如果為yes,雖然能看

//見,但除了jack外其他使用者還是進不去。

browseable = yes              //設定該共享檔案的讀許可權:yes or no

writeable = yes                  //設定該共享檔案的寫許可權:yes or no

//最後存檔退出

#testparm               //檢查一下語法錯誤

第六步:重啟samba服務

#sudo /etc/init.d/samba restart 

經過以上幾步後,不出意外的話samba的安裝於配置就算完成了。下面就該看如何使用samba來進行主機與虛擬機器之間共享檔案了:

1. 主機(windows)訪問虛擬機器(ubuntu):

可直接在瀏覽器的位址列中輸入虛擬機器的ip,如://192.168.227.129(我的虛擬機器的ip),回車後就可以看到虛擬機器上的共享檔案了(如上述步驟中的share),如果該虛擬機器上的samba伺服器新增了多個使用者,則會彈出乙個登陸框,要求你輸入使用者名稱和密碼。

2. 虛擬機器(linux)訪問主機(windows):

這個可以通過linux下的mount命令或者samba的命令smbmount來實現。

(1)mount命令

載入網路中的共享資料夾到本地機器,mount就是用於掛載檔案系統的,smb做為網路檔案系統的一種,也能用mount掛載。

mount 掛載smbfs的用法;

例子:mount -t smbfs //172.16.80.28/network    //home/jack/test_mount       

(2)smbmount命令

smbmount其實也是mount的乙個變種。

smbmount的用法:

例子:smbmount  //172.16.80.28/network    //home/jack/test_smbmount

注意:如果您的samba伺服器是以share共享方式配置的,則無需使用者名稱和密碼就能掛載,如果出現要密碼的提示,直接回車就行;您也可以用smbmount 來掛載,這樣就無需用mount -t smbfs來指定檔案系統的型別了。對於掛載點,我們要自己建立乙個資料夾,比如/home/jack/test,這由自己決定。在mount的命令中,我們發現有這樣的乙個引數codepage=cp936,這是伺服器端檔案系統的編碼的指定,cp936 就是簡體中文,當然您可以用utf8等。如果您掛載了遠端的smbfs檔案系統出現的是簡體中文亂碼,就要考慮掛載時要指定編碼了。

至此,我們就可以很方便地在主機(windows)和虛擬機器(linux)之間進行檔案共享了。

虛擬機器與主機檔案共享目錄

操作主要分兩大步驟,一是對主機進行配置,二是在虛擬機上安裝vmware tool。一 主機配置 1 開啟vmware虛擬機器,雙擊需要進行檔案共享的虛擬機器。2 新增共享目錄。按照下圖步驟,依次選擇 選項 共享資料夾 新增,將主機中的某個資料夾作為共享目錄,既可以主機訪問又可以虛擬機器訪問。3 開啟...

虛擬機器下CentOS與主機共享檔案

裝了vm虛擬機器後,如果想要從主機上傳檔案到虛擬機器上,或者從虛擬機器傳送檔案到主機上,共享資料夾不失為乙個簡單便捷的方法。1 右鍵虛擬機器,點設定,彈出如下介面,切換到選項,選擇共享資料夾,選擇總是啟用,設定乙個主機上的目錄!2 設定好後,可以在linux中 mnt hgfs中發現我們共享的目錄,...

Linux虛擬機器與主機實現檔案共享

1.開啟虛擬機器,vm settings,在設定介面選擇options,再在下面選擇share floders,選擇右邊第三項,在主機某個盤新建乙個share資料夾,然後設定好後如圖 align center img 2.然後再安裝vm tools工具,具體見 url 3.待tools安裝完成後,在...