【轉】Linux與windows 互訪總結

Smb是實現linux和windows互訪的一座橋樑,所以就先讓我們來了解一下什麼是smb,它的主要功能,通過smb實現共享的方法及配置。在最後我們還介紹了怎樣使用mount命令來掛載windows共享目錄。

一. Samba 簡介

Samba(SMB是其縮寫) 是一個網絡服務器,用於Linux和Windows共享文件之用;Samba 即可以用於Windows和Linux之間的共享文件,也一樣用於Linux和Linux之間的共享文件;不過對於Linux和Linux之間共享文件有更好的網絡文件系統NFS,NFS也是需要架設服務器的;

大家知道在Windows 網絡中的每臺機器即可以是文件共享的服務器,也可以同是客戶機;Samba 也一樣能行,比如一臺Linux的機器,如果架了Samba Server 後,它能充當共享服務器,同時也能做爲客戶機來訪問其它網絡中的Windows共享文件系統,或其它Linux的Sabmba 服務器;

我們在Windows網絡中,看到共享文件功能知道,我們直接就可以把共享文件夾當做本地硬盤來使用。在Linux的中,就是通過Samba的向網絡中的機器提供共享文件系統,也可以把網絡中其它機器的共享掛載在本地機上使用;這在一定意義上說和FTP是不一樣的。

二. samba服務器的啓動及服務器配置文件

<一>Samba 有兩個服務器,一個是smb,另一個是nmb;

smb 是Samba 的主要啓動服務器,讓其它機器能知道此機器共享了什麼;

而nmb是解析用的,它把這臺Linux機器所共享的工作組及在此工作組下的netbios name解析出來。如果不打開nmb服務器的話,只能通過IP來訪問,也就是說在windows的IE瀏覽器中輸入linux計算機的ip才能訪問,例如:\192.168.0.1 est,而輸入linux的計算機名卻不能進行訪問,比如:\wangyh est。

所以在安裝完samba服務器後必須啓動smb的服務。下面是啓動、查看、關閉smb服務器的命令

1.一般的情況下,在RPM包的系統,如果是用RPM包安裝的Samba ,一般可以通過如下的方式來啓動Samba服務器;

# /etc/init.d/smb start

2.對所有linux系統來說,通用的方法就是直接運行smb 和nmb;進入終端在root權限下把samba所在的目錄敲到命令行裏即可,但是您要知道smb和nmb所在的目錄;如果是自己編譯的Samba ,其存放的目錄您應該知道;

例如:samba所在的目錄爲 /usr/sbin/smbd(nmbd),啓動smb輸入如下:

#/usr/sbin/smbd

#/usr/sbin/nmbd

3.啓動完後還要檢查一下samba服務器是否運行起來,查看命令如下:

#/pgrep smbd

#/pgrep nmbd

4.關閉smb服務器,命令如下:

#/pkill smbd

#/pkill nmbd

<二> smb的配置文件及服務器端和客戶端的工具

1.如果我們是用Linux發行版自帶的Samba軟件包,一般情況下Samba服務器的配置文件都位於/etc/samba目錄中,服務器的主配置文件是smb.conf;也有用戶配置文件 smbpasswd、smbusers和lmhosts等;還有一個文件是secrets.tdb,這個文件是Samba 服務器啓動時自動生成的;

2.在smb服務器中幾個主要常用的服務器端工具爲smbd、nmbd、smbpasswd;客戶端爲smbmount(在ubuntu l 6.06的內核中沒有smbmount,所以它不支持這個命令,但可以用mount 加參數的形勢來實現掛載),smbclient等。

<三>實現 ubuntu linux 6.06 與windows系統的互訪

1.Windows 2000/xp/2003訪問ubuntu linux 系統(已測試)

第一步:安裝samba,smbclient,smbfs

命令: # apt-get install samba

# apt-get install smbclient

# apt-get install smbfs

第二步:更改smb.conf 文件

對於新手來說在改之前最好將smb.conf文件進行備份。

修改smb.conf文件用vi 或gedit命令都可以,如下所示:

# vi /etc/samba/smb.conf

# 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=yes

writable=yes

如果我們想在文件中創建共享文件夾,我們只需要在後面寫入段

[wangyh](共享文件)

path=/home/wangyh(共享文件夾路徑)

browseable=yes

public=yes(在網上鄰居中顯示)

writable=yes

當然在ubuntu linux系統中點擊系統->系統管理->共享文件夾,在這裏選擇共享的文件夾也是可以,設置完後,系統自動將你所設置的共享信息寫入smb.conf文件中。

註解:

workgroup 就是Windows中顯示的工作組;

netbios name 就是在Windows中顯示出來的計算機名;

security 這是驗證和登錄方式,這裏我們用了user ;驗證方式有好多種,這是其中常用的一種;一種是share的驗證方式,這種方式就是不用設置用戶和密碼了,但這種方式的安全級別很低,一般我們不採用這種方式;還有一種是server,server模式要求用戶的認證由Samba服務器或NT服務器來完成。

Browseable爲是否可以瀏覽,browseable=yes,爲可瀏覽,我們在工作組下就能看到共享文件夾。如果您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系統中的共享文件夾了,如果windows 在網上鄰居或通過IE看不到的話,要查看兩點

在windows終端ping ubuntu linux系統的主機ip,如果可以ping通,看下一條。

1) 查看windows防火牆中是否禁止其他計算機訪問本機或是否允許ping入。如果可以,再看下一條。

查看windows 用戶設置中的guest用戶是否禁用,如果禁用,將其解除即可。

通過以上設置在windows計算機的網上鄰居或IE都可以看到ubuntu linux系統的共享文件,並可以對其修改,粘貼新文件,複製原有文件等。

2.Ubuntu linux 系統訪問windows xp/2003/2000系統

在我的測試過程中,實現ubuntu linux系統訪問windows系統的方式有3種,我將這幾種方式說明如下:

第一種:用smb訪問

如果在ubuntu linux系統終端pingwindows主機的ip地址可以ping通,且windows計算機中有共享的文件夾,則打開位置下的網絡服務器,點擊界面中windows網絡->workgroup,在workgroup組中就可以看到windows計算機名,雙擊會彈出輸入用戶名和密碼的對話框,將我們上面設置smb的用戶名和密碼輸入就可以進行訪問。

第二種:用ubuntu 系統自帶的連接到服務器功能訪問

在位置中啓動連接到服務器,在服務類型中選擇“windows共享”,在服務器中輸入windows計算機的ip地址或計算機名,點擊連接,這樣在系統桌面中就會顯示一個連接到windows 計算機的文件卷。

我們可以像訪問ubuntu系統中的磁盤一樣來訪問它,同樣在訪問的時候要輸入smb的用戶名和密碼。

第三種:用mount’掛載windows的共享目錄到本地磁盤

首先要在ubuntu系統中建立一個掛載點,在這裏我們建立的掛在點爲 /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

有是這樣在訪問的時候會出現中文亂碼的問題,這樣我們可以按下面命令來執行,可以解決這個問題

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] 執行所用的SHELL命令,或讓用戶進入 SHELL提示符

cd [目錄] 切換到服務器端的指定目錄,如未指定,則 smbclient 返回當前本地目錄

lcd [目錄] 切換到客戶端指定的目錄;

dir 或ls 列出當前目錄下的文件;

exit 或quit 退出smbclient

get file1 file2 從服務器上下載file1,並以文件名file2存在本地機上;

如果不想改名,可以把file2省略

mget file1 file2 file3 filen 從服務器上下載多個文件;

md或mkdir 目錄 在服務器上創建目錄

rd或rmdir 目錄 刪除服務器上的目錄

put file1 [file2] 向服務器上傳一個文件file1,傳到服務器上改名爲file2;

mput file1 file2 filen 向服務器上傳多個文件

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