歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Linux操作系統上Samba常見問題解答

Linux操作系統上Samba常見問題解答

日期:2017/3/3 16:42:47   编辑:關於Linux

一.由Linux向windows提供文件/目錄及打印機共享。

在Linux服務器上的Samba運行起來以後,Linux就相當於一台文件及打印服務器,向windows和Linux Samba客戶提供文件及打印服務。工作在共享模式或者用戶模式下的兩種方法較為常見(Security=share or Security=user) ,其中有以下常見問題。

1.共享模式時從windows 98客戶端不能從網上鄰居中看到服務器,或者看到後不能點擊進入共享資源說密碼不對等等。

a.沒有去掉行guest account = pcguest前面的注釋符號。

b.沒有創建guest帳號pcguest (#useradd pcguest即可)。

c.windows 98默認發送加密的口令,而/etc/smb.conf中沒有enable Samba加密口令。或者也可以編輯windows 98注冊表,讓它發送文本口令(不被建議的)。

2.在/etc/smb.conf中定義了完全可寫共享目錄,但實際操作時不能寫入。

a.特別要注意的是:LINUX本身的文件及目錄權限永遠大於SAMBA定義的權限,要讓某共享資源目錄可以被寫,首先要保證在LINUX下面該目錄可以被相應的用戶可寫,這是前提。

3.在共享模式下如何對某共享目錄加用戶名及密碼保護?

a.看下面的共享資源定義例子:

security = SHARE
username map = /etc/smbusers
log file = /var/log/samba/log.%m
max log size = 50
socket options = TCP_NODELAY
client code page = 936
os level = 40
local master = yes
preferred master = yes
domain master = yes
guest account = pcguest
encrypt passwords = yes
smb passwd file = /etc/smbpasswd
[sales]
comment = test folder
path = /sales/training
guest ok = no
writable = yes
valid users = @sales
write list = @sales

在上面的例子中,我們定義了security=share and samba encrypt password,共享目錄名sales不是guest用戶可訪問的,需要屬於sales組裡的用戶可訪問同時也可寫,當然在Linux下面要保證/sales/training目錄可被組sales可寫,這樣以後定義你的windows logon(不是NT域登錄)的用戶名為組sales裡的用戶名,然後在網上鄰居中雙擊sales時會提示你密碼,該密碼是你在Samba服務器上定義的samba加密的口令,在上面的例子中用戶名和密碼對存放在文件/etc/smbpasswd中,當然你事先要有系統用戶名在/etc/passwd中。

4.windows用戶經常不能在網上鄰居中浏覽到Samba服務器的名字。

a.windows的網上鄰居服務是非常不可靠的服務,它所建立的浏覽列表不可靠,由眾多因素引起。

b.一種可靠的解決辦法是直接用‘查找’-‘計算機’-打入samba服務器的主機名進行查找。注意要確保你在windows啟動時沒有取消登錄。

c.你也可以在DOS窗口用net use 命令:如c: net use m: \\sambaservername\shareresourcename

5.服務器端的測試配置工具

a.在配置完/etc/smb.conf後運行testparm檢測配置文件中是否有相應語法錯誤。

b.在Samba服務起來後,用smbstatus報告用戶使用和登錄情況。

c.在更改過配置文件後,運行/etc/rc.d/init.d/smb restart重讀配置文件。

二.在Linux客戶機上使用Linux Samba服務器

1.在Linux客戶機上使用Smbclient

a.列出計算機192.168.100.1上所有可用的共享資源:smbclient -L 192.168.100.1。如果詢問口令,則直接回車。

也可用名字如:

smbclient -L sh3

若不知道sh3的IP地址,也可用:

smbclient -L sh3 -I 192.168.100.1

b.以某用戶身份連接到Samba服務器192.168.100.1上的共享資源sales:

smbclient //192.168.100.1/sales -U jephe

提示口令後輸入口令,也可把口令打在命令行上用%號分隔為:

smbclient //192.168.100.1/sales -U jephe%password

提示符為smb:\,就象是FTP一樣,也可用名字如:

smbclient //sh3/sales -I 192.168.100.1 -U jephe

你也可以用'\'符號,你的SHELL可能會過濾到特殊符號\,則要這樣寫:

#smbclient \\\\sh3\\sales

2.通過IP地址查找netbios名字

a.在windows下用:

c:\n btstat -A 192.168.100.1

如果知道netbios名字,可用下面的命令得知提供某機器哪些服務:

c:\n btstat -a hydra

b.在Linux下用:

#nmblookup -A 192.168.100.1

在一個網段內可用下面的命令檢測哪些主機在提供samba共享服務:

#nmblookup -d 2 '*' or #nmblookup -B 192.168.100.255 '*'

檢測其它網段內的某台機器是否提供samba服務:

#nmblookup -A 192.168.15.48

但不能用 #nmblookup -B 192.168.15.255 '*',因為一般的路由器和Linux雙宿主機不轉發子網直接廣播。

3.netbios over TCP/IP使用的協議及端口號

a.共有三種netbios服務

netbios-ns 137/udp(大多數)and 137/tcp;

netbios-dgm 138/udp(大多數)and 138/udp;

netbios-ssn 139/tcp。

b.windows機器上的PC應用程序通過不同機器間的netbios名字來彼此通訊。

c.每次當windows機器啟動時,它向整個網段內發出137/udp廣播,一來登記向某工作組內的主浏覽器登記netbios名字,二來確信整個子網內沒有與之相同的名字。

d.網上鄰居中所建立起來的浏覽列表僅僅是列表,看不到也沒有關系,同樣也可以通過計算機查找,net use命令等來與別的計算機通訊,共享文件和打印機。

e.不在同一網段內的機器或者是撥號到LAN上的PPP服務器後不可能進行網上鄰居的浏覽。這是因為子網內的廣播不被串行線路和路由器轉發。

f.如何在撥號到LAN上的PPP服務器後使用LAN上的Samba服務器?

<1> 在windows目錄下編輯c:\windows\lmhosts.如:

192.168.11.3  sh3 #PRE #DOM:sales

執行nbtstat -R 去enable它,不需要重啟windows。

<2> 你必須登錄windows,若是用戶模式的samba,你應該選擇windows NT登錄。

<3> 其它設置跟LAN上的機器一樣。

<4> 撥號建立連接後,在查找‘計算機’功能定位資源。

<5> 現在你能使用遠端服務器上的目錄和打印機。在不同網段內的機器也可參照此做法,也可用plug-gw代理tcp/139號端口訪問另一網段上的samba服務器。

4.用Microsoft FTP 服務器的簡便方法,ftp.microsoft.com。

a.加‘ftp'到lmhosts文件:

198.105.232.1  ftp #PRE

運行:

nbtstat -R
net view \\ftp
net use g: \\ftp\data
dir g:

5.smbmount 的使用:

#smbmount //192.168.100.1/pub /mnt/sh3 -U jephe%password

Copyright © Linux教程網 All Rights Reserved