歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 什麼是samba?

什麼是samba?

日期:2017/2/27 14:18:27   编辑:更多Linux
  samba是一個工具套件,在Unix上實現SMB(Session Message Block)協議,或者稱之為NETBIOS/LanManager 協議.SMB協議通常是被瘟都死系列用來實現磁盤和打印機共享.需要注意的是,NetBIOS是基於以太網廣播 機制的,沒有透明網橋是不能跨越網段的,也許用WINS和LMHOSTS可以,但我沒試過.我感覺samba是把SMB綁 定到TCP/IP上實現的,samba只在IP子網內廣播(很多時候我不得不指定IP地址:-().所以在win95上與samba 通訊既要裝NetBEUI協議,也要裝tcp/ip協議!! samba的主要部分有: 兩個守護程序: smbd 和 nmbd(對客戶端提供NetBIOS名服務) 配置文件: /etc/smb.conf 使用工具: smbclient,smbstatus,smbmount,smbumount,smbprint,smbprint.sysv,smbrun samba的啟動腳本在/etc/rc.d/init.d/smb BTW,不要把smb與smp(對稱多處理器)搞混了,更不要把NetBIOS名與DNS裡的主機名搞混淆了! samba缺省 是把主機名設置成NetBIOS名,這樣通常會超出NetBIOS名的長度限制(16個字符). > 在win95網絡鄰居看不到Linux box? 注意/etc/smb.conf文件裡以下幾項的設置: guest account = pcguest(不要照著寫,添實際的名字,你要去創建一個pcguest帳號) null passWord = yes (這一點很重要!) browseable = yes public = yes 另外把security改為share試試. 仔細讀一讀"man smb.conf". 再說瘟95那個破東西,網絡鄰居運行一百遍才可能會出來你想要的. 用這個方法試一試:先用smbmount 瘟95的一個共享目錄,用"網絡監視器"查看一下,然後再用網絡鄰居看. > smbmount怎麼用? 不能用man smbmount看看嗎? 大致是: smbmount //win95-name/share-dir /mount-point [-I ip地址或主機名] [-c 本機客戶名] []表示可選項, 本機客戶名可以隨便取. Samuel Leo補充道: 標准的smbmount使用格式是 smbmount //server/share -c "mount /mnt -u uid -g gid" (注:好象不對吧) 我編譯了一個修改版的smbmount, 使用格式為 smbmount //server/share /mnt [passwd] [-Uusername] [-9] FTP://202.103.190.5/incoming/smbmount.gz (binary) 如果你用redhat, 也可以試試最新出的smbwrapper ftp://202.103.190.5/incoming/smbwrapper.so.gz 設置一下環境變量 LD_PRELOAD=/anywhere/smbwrapper.so SMBW_USER=username SMBW_PASSWORD=passsword SMBW_WORKGROUP=workgroup #optional SMBW_DEBUG=4 #optional SMBW_LOGFILE=smbw.log #optional, default to stderr SMBW_PREFIX=/smb #optional, default to /smb eXPort PWD SMBW_USER SMBW_PASSWORD SMBW_WORKGROUP export SMBW_DEBUG SMBW_LOGFILE SMBW_PREFIX 然後你就可以"ls /smb"看到同組的所有機器名. "ls /smb/server"看該機的共享清單. 缺點就是太慢, 10.10版對execle,execve,...等指定envp的exec仍有bug 不能下執行/smb下的文件, 不能mmap /smb下的文件. > 先謝謝各位! > 我的Pwin95現在可以看到linux了,我保證什麼也未修改過。 > 現在,我從linux上執行:


> smbclient //sjj2/nes(pwin95機器),可看到文件並顯示: > smb:\> > smbclient -L sjj2,可看到sjj0(linux)和sjj2(pwin95)。 > 但是我不能從pwin95上訪問linux(sjj0),雙擊總顯示: > 找不到機器名或共享名,請確認輸入正確,然後重試。 > 我對smbmount不會用,也找不到能看明白的幫助,因為 > 我不理解mount-point的含義,請指導;linux上的 > smbd和nmbd當然是運行的。 > 再謝各位!請繼續幫忙。smb.conf在前面的貼子中。 Win95的網絡鄰居問題太多,別說跟Linux多不去,就是幾台Win95之間連個小網,只要沒有NT服務器, 他們就經常互相找不到。 所以,一定要把samba的WINS服務器功能打開,(wins support = yes), 然後把95的WINS服務器指向他。也許還要加入: name resolv order = wins hosts bcast 這樣做的話最好讓Linux先於瘟95啟動起來! >我在REDHAT 5.1裡可以共享WIN98的服務,在WIN98的網上鄰居裡 >可以看到LINUX的機子,但提示\\linux\IPC$ 需要口令,輸入口令總 >不正確,不知該如何設置? 此問題好象不單linux有,NT也有,原因是連接時沒有用戶名的信息,不要直接點擊圖 標,用磁盤映射:\\linux\username 的格式 WIN98使用加密的口令認證,而RedHat的SMB缺省使用明文認證,所以口令總是不正確。 可以在smb.conf中加入 encrypt passwords = yes 並使用smbpasswd 維護用戶口令 Win98 上選 開始 -> 注銷 ,用 Linux 機器上的用戶名和口令登錄, 然後不用輸入口令就可以訪問 Linux 的資源了。這和 NT 上是一樣的。 或者 Linux 機器上的 /etc/smb.conf 裡改成 security = share, guest account = username (username 改成你機器上的一個用戶帳號)。 這樣如果 Win98 不是用 Linux 系統上的用戶帳號登錄的,也可以直接 訪問 Linux ,其權限等於 guest account 指定的用戶的權限。Linux 作出改動後要重啟。 注:完全不必重新啟動,可以到/etc/rc.d/init.d下去執行smbd stop,然後再smbd start 就可以了(這是在Redhat中).在Linux下要學會盡量不重啟的基本技巧! > 如何讓win98發送明文密碼呢? 如果你用win98或打過很多補丁的win95. 如果samba不提供口令加密是不能登錄的. 1. 執行Win95_PlainPassword.reg允許win95發送明文口令 運行REGED99v,添加: [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP] "EnablePlainTextPassword"=dword:00000001 2. 升級到最新的samba, 打開口令加密開關. > BTW:哪一版SMABA可設加密校驗,如何設? 我的 samba 1.9.18p10 就已經可以了. 在 smb.conf 裡面找到 # You may wish to use password encryption. Please read # ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation. # Do not enable this option unless you have read those documents encrypt passwords = yes smb passwd file = /usr/private/smbpasswd 這一段就可以了. > 為什麼smbclient \\NetBIOS-name\share-dir 總是不對? 這是shell的原因,應該用smbclient \\\\name\\share-dir或者是smbclient '\\name\share-dir' shell不處理兩個單引號之間的內容.如果你熟悉C語言,應該很清楚為什麼了! 或者使用smbclient //NetBios-name/share-dir 就不存在這個問題。 > 我在我的Linux機器上設好了smb.conf如下(刪去了所有注釋),為什麼NT不認samba?

把 security = user 改成: security = server samba 1.9.18以前的版本還不完全支持NT的所謂"域", 2.0.0版正在開發中,對此有不小的進步. > 多謝姚飛大俠上回的指點。但我在安裝時還是碰到了問題。我選擇了shadow,no pam, > 還選了disk quota,結果出現 > quotas.c:38:sys/quota.h:No sUCh file or Director > 這以後再不能編譯了。我把選擇該為 shadow no pam ,no quota,有編譯,出現: > cc:internal compoler error:program cc1 got fatal signal 6 > make :*** [smbpass.o] Error! > 我再把shadow ,pam quota 等選項選來選去,總是這個錯誤都不變化了。好象以前編譯 > 通過的就不編了只編譯後面的。我怎樣才能讓它重新編譯? > slackware 3.4 kernel 2.0.30 > Thanks! 如果你用的是Slackware 3.4的話, 應該是shadow, no pam , no quota 大概從1.9.18p4開始就無法正常編譯了,到了smbpass.o必定出這個錯. 解決方法有幾個: 1. 直接下載編譯好的文件 2. 升級GCC到2.8.1, 或者 egcs-1.0.2 3. 升級到Slackware 3.5 > 本人單位財務部門需要裝一台文件服務器,我安裝了Redhat 5.1,用 samba > 作為文件服務器,客戶端使用的是win95,現在win95已可以在網絡鄰居中找到 > 服務器,我將共享目錄映射為F:盤,經過試驗,大幅度地拷貝文件都沒問題. > 但是,因為財務軟件是dos方式下的,當我執行F:\下的帳務程序時,一次、兩次、 > 甚至數次都沒問題,但是若干次後每個客戶端都出現死機現象。我將samba > stop一下,再start就可以了,請問這是怎麼一回事?以前用NT做服務器並沒有 > 這樣的現象。 俺原來用RH 4.2, kernel 2.0.30+ samba 1.9.16p11也有同樣的問題update後就ok了, 現在俺用的是kernel 2.0.35 + samba 1.9.18p8



現在俺用的是kernel 2.0.35 + samba 1.9.18p8



Copyright © Linux教程網 All Rights Reserved