1. 程式人生 > >Linux伺服器對映到本地磁碟

Linux伺服器對映到本地磁碟

把linux伺服器上的資料夾對映到本地作為一個磁碟來訪問,步驟如下

一. samba的安裝: 



sudo apt-get install samba      // (sudo get temp root auth) 
sudo apt-get install smbfs     //舊版本 
sudo apt-get install cifs-utils //新版本 
上面的命令將會安裝Samba和其他相關的工具。在舊版的Ubuntu中,你可能需要使用 smbfs替代 cifs-utils。 
sudo apt-get install samba-common 


二. 建立共享目錄: 


1、系統使用者home目錄下: 
mkdir /home/john/share    //如果配置的共享目錄不存在則建立 
chown -R nobody. /home/john/share    //設定共享目錄歸屬為 nobody  ///////////////////
sudo chmod 777 /home/john/share    //將共享目錄屬性設定為 777 
說明:john為你的ubuntu的使用者名稱;share你可以隨便起個名字做為共享資料夾 


2、普通目錄下: 
如建立/mydir/private 和 /mydir/public 目錄 ( 注意許可權問題,不然導致不能訪問) 
mkdir -p /mydir/{private,public} 
chown -R nobody.nogroup /mydir 
chmod -R 777 /mydir 


三. 建立Samba配置檔案: 
1. smb.conf部分配置說明  [global]  server string = Samba Server Version %v  passdb backend = tdbsam  cups options = raw  security = user //認證模式為User  map to guest = bad user //這個很關鍵,實現匿名無須互動輸入使用者名稱和密碼就靠它了  guest account = guest //匿名使用者對映為guest使用者  [myshare]  comment = My share  path = /home/public //共享路徑  browseable = Yes //可以被瀏覽,就是在網路鄰居中能看到共享名 
read only = No //可讀寫  guest ok = Yes //允許匿名訪問,這個也需要設定,否則匿名無法訪問  valid users = samba liuag guest //有效的使用者和組  invalid users = liuben //無效使用者和組     read list = samba //只讀使用者和組(如果read only = No,只讀使用者需要在此設定)  write list = liuag //可讀寫使用者和組(如果read only = Yes,可讀寫使用者需要在此設定)  allow hosts = 192.168.100.236 //允許訪問主機列表,支援萬用字元 
deny hosts = 192.168.100.0/24 //禁止訪問主機列表,支援萬用字元  示例:  [global]      workgroup = WORKGROUP      server string = samba server on ubuntu      netbios name = ubuntu_smb      interfaces = 127.0.0.0/8 eth0      hosts allow = 192.168.1. 192.168.163. 192.168.153.      security = user      username map = /etc/samba/smbusers      encrypt passwords = true      passdb backend = smbpasswd      smb passwd file =/etc/samba/smbpasswd      log file = /var/log/samba/log.%m      max open files = 1000      socket options = TCP_NODELAY  ;[homes]  ; comment = home directories  ; browseable = no  ; writable = yes  ; valid users = %S  ; create mode = 0664  ;[printers]  ; printable = Yes  ; browseable = No  ; path = /var/spool/samba  [code]      comment = code //comment是對該共享的描述,可以是任意字串。      path = /home/songyd/code      writable = yes      browseable = yes      available = yes  2. 儲存現有的配置檔案  sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak  3.修改現配置檔案  sudo gedit /etc/samba/smb.conf  在smb.conf最後新增  示例一:  [share] G path = /home/john/share  available = yes  browseable = yes  public = yes  writable = yes  valid users = myname  create mask = 0700  directory mask =0700  force user =nobody  force group = nogroup  說明:valid users = myname 這個myname是自己起的,後面在新增使用者名稱時就是新增的這個;  另外這個 [share] 名字也是可以隨便起的,這個是你在windows下訪問時顯示的名字;  在windows下 \\162.168.160.11\share就可以訪問linux下/home/god/ code目錄下的內容了;  其中162.168.160.11是你linux的IP地址,用ifconfig就可以檢視到。  示例二:  [www]    path = /home/test/www  available = yes    browseable = yes    public = yes //允許匿名使用者登入  writable = yes  說明:public 指明該共享資源是否能給遊客帳號訪問,這個開關有時候也叫guest ok,所以有的配置檔案中出現guest ok = yes其實和public = yes是一樣的。  然後順便把這裡改一下,找到[global]把 workgroup = MSHOME改成 :(注意,這裡的WORKGROUP是共享中的工作組名稱) 程式碼:(如果沒有也可加上去)  workgroup = WORKGROUP  display charset = UTF-8  unix charset = UTF-8  dos charset = cp936  後面的三行是為了防止出現中文目錄亂碼的情況。 


四. 建立samba帳戶 :  現在要新增 myname這個網路訪問帳戶。如果系統中當前沒有這個帳戶(也可以用系統中己存在的賬戶如root,god),那麼程式碼:  sudo useradd myname  上面只是增加了 myname這個系統使用者,卻沒有給使用者賦予本機登入密碼。所以這個使用者將只能從遠端訪問,不能從本機登入。而且samba的登入密碼可以和本機登入密碼不一樣。這個你可以在重啟機器時看到這個你新增的使用者,但是你卻用它登陸不了系統,因為沒有賦予本機登入密碼。  sudo touch /etc/samba/smbpasswd   sudo smbpasswd -a myname  (如果你直接用系統中的賬號,這裡myname就是你係統中的賬戶即可)然後會要求你輸入samba帳戶的密碼,這個密碼不是開機登入時候用的,是你要訪問WIN共享檔案或者WIN共享檔案訪問你的時候要填的密碼。  刪除網路使用者的帳號的命令把上面的 -a 改成 -x 即: sudo smbpasswd -x myname  smbpasswd 命令的用法  smbpasswd -a 增加使用者(要增加的使用者必須以是系統使用者)    smbpasswd -d 凍結使用者,就是這個使用者不能在登入了    smbpasswd -e 恢復使用者,解凍使用者,讓凍結的使用者可以在使用    smbpasswd -n 把使用者的密碼設定成空.                 要在global中寫入 null passwords -true    smbpasswd -x 刪除使用者   五. 使用者賬號對映 :  samba的使用者帳號資訊是儲存在smbpasswd檔案中的,而且可以訪問samba伺服器的帳號也必須對應一個同名的系統帳號。基於這 一點,所以,對於一些hacker來說,只要知道samba伺服器滴samba帳號,就等於是知道了Linux系統帳號,只要crack其samba帳號密碼加以利用就可以攻擊samba伺服器。所以我們要使用使用者帳號對映這個功能來解決這個問題。  使用者帳號對映這個功能需要建立一個帳號對映關係表,裡面記錄了samba帳號和虛擬帳號的對應關係,客戶端訪問samba伺服器時就使用虛擬來登入。  1)編輯主配置檔案vi /etc/samba/smb.conf  在//下新增一行欄位username map = /etc/samba/smbusers開啟使用者帳號對映功能。  2)編輯 vi /etc/samba/smbusers  smbusers檔案儲存帳號對映關係,其有固定滴格式:  samba帳號 = 虛擬帳號(對映帳號)  myname = networkusername  帳號myname就是我們上面建立的samba帳號(同時也是Linux系統帳號),networkusername就是對映的帳號名(虛擬帳號),帳號 myname在我們訪問共享目錄時只要輸入networkusername就可以成功訪問了,但是實際上訪問samba伺服器的還是我們的myname帳號,這樣一來就解決了安全問題。  3)重啟samba服務:service smbd restart  4)驗證效果  輸入我們定義的對映帳號networkusername,注意我們沒有輸入帳號myname,對映帳號networkusername的密碼和myname帳號一樣,現在就可以通過對映帳號瀏覽共享目錄了。  六. 重啟samba伺服器 :  sudo testparm 驗證一下配置引數有沒有問題,如果有問題在回去修改  sudo /etc/init.d/samba restart (不知為什麼,我的這個目錄下就是沒有這個,用這個命令總是報錯)   service samba restart  service smbd restart  七. 測試:  smbclient -L //localhost/share 或者   smbclient -L \\127.0.0.1 -U myname //這時輸入的密碼就是你剛才設定的samba密碼  八. 使用 :  可以到windows下輸入ip使用了,在資料夾處輸入 "\\" + "Ubuntu機器的ip或主機名" + "\\" + "share";  我的即為:\\162.168.160.11\share(share就是剛才smb.conf中的[share])第一次進入時要輸入使用者名稱和密碼,這個就是你在第四步中設定的使用者名稱和密碼。 九. samba的解除安裝: dpkg -l |grep samba  dpkg -l |grep smbfs  dpkg -l |grep smb  apt-get remove samba\smbfs\smb ubuntu12.04samba伺服器配置 系統平臺:VMware Workstation9.0 + ubuntu12.04 首先要解決windows和linux網路連線問題: 在VMware Workstation9.0 “設定” 選項中,設定"網路" 網路連線1 選中“啟用網路連線” 方式:NAT 網路連線2 選中“啟用網路連線” 方式:Bridged Adapter 啟動ubuntu,檢視地址: #ifconfig eth0    注:你的LINUX裡面可能有兩塊網絡卡eth0和eth1,分別看一下他們的IP地址,有一個是和你的WINDOWS本地連線IP地址在一個網段的(以後就使用這個IP地址登入samba,也是掛載NFS伺服器的IP) 再說一下關於IP地址的配置(以我自己的電腦舉例):  我是用ADSL拔號上網,windows本地連線的IP地址是自動獲取的,IP為:192.168.1.45  查一下linux下eth0的IP為:10.0.2.15;eth1的IP為192.168.1.42  那eth1即為linux的本地連線的IP地址,也就是samba伺服器的IP地址 關閉LINUX防火牆命令: #ufw disable 注:ufw是linux下的防火牆操作命令,相關的操作可以檢視命令幫助 然後就在windows下ping一下linux的IP,如果能ping通,就可以繼續下面的內容,如果ping不通就再找找原因 注:ubuntu 12.04已經安裝了最新版本的samba伺服器,無需安裝。如果使用12.04以前的版本,最好是按下邊的方法升級一下samba,12.04版本無需下列操作 解除安裝samba,smbclient,samba-common  $sudo apt-get remove samba-common $sudo apt-get remove smbclient $sudo apt-get remove samba 安裝Ubuntu samba伺服器: sudo apt-get install samba sudo apt-get install smbfs 開始配置: samba配置檔案: /etc/samba/smb.conf 可以修改配置檔案來設定samba共享和使用者 如果不習慣使用配置檔案,也可以使用圖形介面 安裝Ubuntu samba圖形管理介面 #sudo apt-get install system-config-samba 啟動samba圖形管理介面 #sudo system-config-samba 也可以選擇選單: system->Administration->Samba 配置方法和RedHat9中一樣 選擇要共享的目錄 設定讀寫許可權 設定訪問許可權 新增samba使用者 配置完成後要重啟samba #sudo /etc/init.d/smbd restart