Linux與windows 互訪總結 Smb是實現(xiàn)linux和windows互訪的一座橋梁,所以就先讓我們來了解一下什么是smb,它的主要功能,通過smb實現(xiàn)共享的方法及配置。在最后我們還介紹了怎樣使用mount命令來掛載windows共享目錄。 一. Samba 簡介 Samba(SMB是其縮寫) 是一個網絡服務器,用于Linux和Windows共享文件之用;Samba 即可以用于Windows和Linux之間的共享文件,也一樣用于Linux和Linux之間的共享文件;不過對于Linux和Linux之間共享文件有更好的網絡文件系統(tǒng)NFS,NFS也是需要架設服務器的; 大家知道在Windows 網絡中的每臺機器即可以是文件共享的服務器,也可以同是客戶機;Samba 也一樣能行,比如一臺Linux的機器,如果架了Samba Server 后,它能充當共享服務器,同時也能做為客戶機來訪問其它網絡中的Windows共享文件系統(tǒng),或其它Linux的Sabmba 服務器; 我們在Windows網絡中,看到共享文件功能知道,我們直接就可以把共享文件夾當做本地硬盤來使用。在Linux的中,就是通過Samba的向網絡中的機器提供共享文件系統(tǒng),也可以把網絡中其它機器的共享掛載在本地機上使用;這在一定意義上說和FTP是不一樣的。 二. samba服務器的啟動及服務器配置文件 <一>Samba 有兩個服務器,一個是smb,另一個是nmb; smb 是Samba 的主要啟動服務器,讓其它機器能知道此機器共享了什么; 而nmb是解析用的,它把這臺Linux機器所共享的工作組及在此工作組下的netbios name解析出來。如果不打開nmb服務器的話,只能通過IP來訪問,也就是說在windows的IE瀏覽器中輸入linux計算機的ip才能訪問,例如:\\192.168.0.1\test,而輸入linux的計算機名卻不能進行訪問,比如:\\wangyh\test。 所以在安裝完samba服務器后必須啟動smb的服務。下面是啟動、查看、關閉smb服務器的命令 1.一般的情況下,在RPM包的系統(tǒng),如果是用RPM包安裝的Samba ,一般可以通過如下的方式來啟動Samba服務器; [root@localhost ~]# /etc/init.d/smb start 2.對所有l(wèi)inux系統(tǒng)來說,通用的方法就是直接運行smb 和nmb;進入終端在root權限下把samba所在的目錄敲到命令行里即可,但是您要知道smb和nmb所在的目錄;如果是自己編譯的Samba ,其存放的目錄您應該知道; 例如:samba所在的目錄為 /usr/sbin/smbd(nmbd),啟動smb輸入如下: [root◎wangyh:/home/wangyh]#/usr/sbin/smbd [root◎wangyh:/home/wangyh]#/usr/sbin/nmbd 3.啟動完后還要檢查一下samba服務器是否運行起來,查看命令如下: [root◎wangyh:/home/wangyh]#/pgrep smbd [root◎wangyh:/home/wangyh]#/pgrep nmbd 4.關閉smb服務器,命令如下: [root◎wangyh:/home/wangyh]#/pkill smbd [root◎wangyh:/home/wangyh]#/pkill nmbd <二> smb的配置文件及服務器端和客戶端的工具 1.如果我們是用Linux發(fā)行版自帶的Samba軟件包,一般情況下Samba服務器的配置文件都位于/etc/samba目錄中,服務器的主配置文件是smb.conf;也有用戶配置文件 smbpasswd、smbusers和lmhosts等;還有一個文件是secrets.tdb,這個文件是Samba 服務器啟動時自動生成的; 2.在smb服務器中幾個主要常用的服務器端工具為smbd、nmbd、smbpasswd;客戶端為smbmount(在ubuntu l 6.06的內核中沒有smbmount,所以它不支持這個命令,但可以用mount 加參數(shù)的形勢來實現(xiàn)掛載),smbclient等。 <三>實現(xiàn) ubuntu linux 6.06 與windows系統(tǒng)的互訪 1.Windows 2000/xp/2003訪問ubuntu linux 系統(tǒng)(已測試) 第一步:安裝samba,smbclient,smbfs 命令: [root◎wangyh:/home/wangyh]# apt-get install samba [root◎wangyh:/home/wangyh]# apt-get install smbclient [root◎wangyh:/home/wangyh]# apt-get install smbfs 第二步:更改smb.conf 文件 對于新手來說在改之前最好將smb.conf文件進行備份。 修改smb.conf文件用vi 或gedit命令都可以,如下所示: [root◎wangyh:/home/wangyh]# vi /etc/samba/smb.conf [root◎wangyh:/home/wangyh]# gedit /etc/samba/smb.conf 在[global]這段中修改的內容如下: 在[global]下面加入 兩行 doc charset=UTF-8 unix charset=UTF-8 workgroup=WORKGROUP 在下面添加一行 netbios name=wangyh(這里填本機的計算機名) 找到passwd program行將其改為 passwd program=/etc/samba/smbpasswd 找到 security行將其改為 security=user 找到[homes]段修改內容如下 browseable=y(tǒng)es writable=y(tǒng)es 如果我們想在文件中創(chuàng)建共享文件夾,我們只需要在后面寫入段 [wangyh](共享文件) path=/home/wangyh(共享文件夾路徑) browseable=yes public=yes(在網上鄰居中顯示) writable=yes 當然在ubuntu linux系統(tǒng)中點擊系統(tǒng)->系統(tǒng)管理->共享文件夾,在這里選擇共享的文件夾也是可以,設置完后,系統(tǒng)自動將你所設置的共享信息寫入smb.conf文件中。 注解: workgroup 就是Windows中顯示的工作組; netbios name 就是在Windows中顯示出來的計算機名; security 這是驗證和登錄方式,這里我們用了user ;驗證方式有好多種,這是其中常用的一種;一種是share的驗證方式,這種方式就是不用設置用戶和密碼了,但這種方式的安全級別很低,一般我們不采用這種方式;還有一種是server,server模式要求用戶的認證由Samba服務器或NT服務器來完成。 Browseable為是否可以瀏覽,browseable=y(tǒng)es,為可瀏覽,我們在工作組下就能看到共享文件夾。如果您browseable=no ,那末文件夾在工作組中就不顯示。 writeable 為是否可寫,這里我設置為可寫; 第三步:添加smb用戶,并設置linux用戶密碼 這里要注意的是在添加smb用戶之前,必須將其添加成ubuntu linux 用戶,命令如下: 1)添加成linux用戶 adduser –a heqing(heqing為用戶名) enter new UNIX password:***** retype new UNIX password:***** 剩下的項按提示輸入即可 2)添加成smb用戶,并設置smb密碼 smbpasswd -a heqing(已存在的linux用戶) NEW SMB passwd:****** Retype NEW SMB passwd:****** 添加成功 最后要說明的是heqing用戶的linux用戶密碼可以與smb密碼不相同 第四步:設置windows客戶端 基本完成上面的配置后windows就可以訪問ubuntu linux系統(tǒng)中的共享文件夾了,如果windows 在網上鄰居或通過IE看不到的話,要查看兩點 在windows終端ping ubuntu linux系統(tǒng)的主機ip,如果可以ping通,看下一條。 1) 查看windows防火墻中是否禁止其他計算機訪問本機或是否允許ping入。如果可以,再看下一條。 查看windows 用戶設置中的guest用戶是否禁用,如果禁用,將其解除即可。 通過以上設置在windows計算機的網上鄰居或IE都可以看到ubuntu linux系統(tǒng)的共享文件,并可以對其修改,粘貼新文件,復制原有文件等。 2.Ubuntu linux 系統(tǒng)訪問windows xp/2003/2000系統(tǒng) 在我的測試過程中,實現(xiàn)ubuntu linux系統(tǒng)訪問windows系統(tǒng)的方式有3種,我將這幾種方式說明如下: 第一種:用smb訪問 如果在ubuntu linux系統(tǒng)終端pingwindows主機的ip地址可以ping通,且windows計算機中有共享的文件夾,則打開位置下的網絡服務器,點擊界面中windows網絡->workgroup,在workgroup組中就可以看到windows計算機名,雙擊會彈出輸入用戶名和密碼的對話框,將我們上面設置smb的用戶名和密碼輸入就可以進行訪問。 第二種:用ubuntu 系統(tǒng)自帶的連接到服務器功能訪問 在位置中啟動連接到服務器,在服務類型中選擇“windows共享”,在服務器中輸入windows計算機的ip地址或計算機名,點擊連接,這樣在系統(tǒng)桌面中就會顯示一個連接到windows 計算機的文件卷。 我們可以像訪問ubuntu系統(tǒng)中的磁盤一樣來訪問它,同樣在訪問的時候要輸入smb的用戶名和密碼。 第三種:用mount’掛載windows的共享目錄到本地磁盤 首先要在ubuntu系統(tǒng)中建立一個掛載點,在這里我們建立的掛在點為 /mnt/wind 同樣在保證網絡連接正常,且windows中有共享目錄的前提下,進行一下操作 以windows的ip為192.168.0.1,共享文件夾為share為例 命令如下: mount -t smbfs –o username=wangyh,password=123456 //192.168.0.1/share /mnt/wind 有是這樣在訪問的時候會出現(xiàn)中文亂碼的問題,這樣我們可以按下面命令來執(zhí)行,可以解決這個問題 mount -o smbfs -o iocharset=uft8,codepage=cp936,clmask=777,fmask=777,userneme=wangyh,password=123456 //192.168.0.1/share /mnt/wind 注解:usename和password都為smb的用戶和密碼,如果要詳細了解mount命令,使用man mount在終端查看詳細用法 第四種:使用smbclient 命令 命令如下: smbclient –L //192.168.0.1/share -U wangyh password:輸入smb用戶wangyh的密碼 回車就可以用,用命令get下載文件,用put上傳文件。 注解: smbclient介紹: 命令 說明 或help [command] 提供關于幫助或某個命令的幫助 ![shell command] 執(zhí)行所用的SHELL命令,或讓用戶進入 SHELL提示符 cd [目錄] 切換到服務器端的指定目錄,如未指定,則 smbclient 返回當前本地目錄 lcd [目錄] 切換到客戶端指定的目錄; dir 或ls 列出當前目錄下的文件; exit 或quit 退出smbclient get file1 file2 從服務器上下載file1,并以文件名file2存在本地機上; 如果不想改名,可以把file2省略 mget file1 file2 file3 filen 從服務器上下載多個文件; md或mkdir 目錄 在服務器上創(chuàng)建目錄 rd或rmdir 目錄 刪除服務器上的目錄 put file1 [file2] 向服務器上傳一個文件file1,傳到服務器上改名為file2; mput file1 file2 filen 向服務器上傳多個文件 |
|
來自: kevin2006 > 《linux/develop》