歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

運用技巧解決Samba/Windows沖突

  許多問題都可以導致Samba在Windows和Linux系統之間正確建立雙向網絡連接時失敗。你可以通過學習對兩個普通問題的解決方法來避免在處理具體問題時花費過多的時間:Windows口令沖突和主機gotcha。     這篇文章假設以下的事實:你已經正確地安裝了Samba並配置了Smb.conf文件,你可以從Windows的網絡鄰居對話框看到Linux系統, 但從Linux版本的網絡鄰居中(例如LinNeighborhood或smbclient)只能看到你的Linux 。這是出了什麼問題?這裡有兩種最有可能的原因。     解決由Windows口令引起的Samba問題     當利用Windows共享處理Samba網絡沖突時,Windows口令應該首次出現在你的列表當中。檢查這兩個潛在的Windows口令問題:       Windows網絡協議需要在兩個系統中使用相同的用戶名。如果你以"mike"登錄,除非Windows也建立了一個名為"mike"的目錄並且這個目錄必須是聯機的,否則你就連接不到Windows。   如果Windows PC運行的是較新的Windows版本(安裝Win98和Service Pack 2,或是更新的版本,包括windows 2000),你需要停止Windows中的口令加密功能。在Samba文件目錄下(在Red Hat系統中,這個Samba文件目錄位於/usr/share/doc中)查找包含你將修改的Windows版本注冊關鍵字(reg key)的文件。在Windows系統中,點擊Start,選擇Run,鍵入regedit,然後點擊OK;當注冊表編輯器打開後,查找正確的位置並根據Samba文件中的說明來改變缺省值。     如果上面的方法沒有解決你的Samba沖突,可能的原因是你遇到了有名的主機gotcha問題   。     也許你在/etc/hosts文件中列出了所在網絡中所有計算機的名稱,如果所有的連接失敗,這個文件將提供需要的IP地址。並且,為了保證安全,Samba將檢查這個文件。實際上,Samba檢查的是gethostbyname()函數。但在某些版本中,特別是Red Hat,這個函數只是返回目前主機的名稱,而不是/etc/hosts文件的內容。     為了能看到網絡中的其他計算機,你需要編輯Samba的配置文件並將名稱排列順序中默認的host lmhost broadcast win改為lmhost broadcast win,這樣就可以改變gethostbyname()函數的返回值。     在對Samba配置文件做了必要的修改之後,按照下列步驟:在一個終端視窗,打開超級用戶對話。鍵入su,點擊[Enter],鍵入你的超級用戶口令。打開一個文本編輯器並打開/etc/smb.conf文件。注意:在某些系統中,這個文件位於/etc/samba/smb.conf。查找以下面的文本開頭的部分:#All NetBIOS names must be resolved to IP addresses。刪除";name resolve order =..."這行中開頭的分號。在同一行中,刪除單詞"host"。確信這行包括"lmhosts"。保存/etc/smb.conf(或者,如果文件位於/etc/samba目錄,將文件保存為/etc/samba/smb.conf)。打開同目錄下名為lmhosts的文件。如果不存在這個文件,創建一個新的文本文件。在lmhosts文件中,謹慎地鍵入所在網絡中每個計算機的IP地址,域名和別名。這裡是一個例子: 127.0.0.1 localhost.localdomain localhost 192.168.1.44 lothlorien.middle-earth.org lothlorien 192.168.1.45 bag-end.middle-earth.org bag-end 192.168.1.46 moria.middle-earth.org moria 192.168.1.47 mordor.middle-earth.org mordor 將lmhosts保存在包含Smb.conf的目錄下。退出文本編輯器。在終端視窗中,保持超級用戶模式。鍵入/etc/rc.d/init.d/smb restart,然後按[Enter]。     注釋:這個名為smb的腳本可能在某些系統中處於不同的目錄下。現在再一次試圖訪問網絡。




Copyright © Linux教程網 All Rights Reserved