⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 network-samba.html

📁 学习linux的工具书
💻 HTML
字号:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
   <meta name="Author" content="Edward Fu">
   <meta name="GENERATOR" content="Mozilla/4.05 [zh-CN] (X11; I; Linux 2.1.127 i686) [Netscape]">
   <title>Freesoft Linux FAQ -- 关于samba</title>
</head>
<body>
> 什么是samba?
<br>samba是一个工具套件,在Unix上实现SMB(Session Message Block)协议,或者称之为NETBIOS/LanManager
<br>协议.SMB协议通常是被瘟都死系列用来实现磁盘和打印机共享.需要注意的是,NetBIOS是基于以太网广播
<br>机制的,没有透明网桥是不能跨越网段的,也许用WINS和LMHOSTS可以,但我没试过.我感觉samba是把SMB绑
<br>定到TCP/IP上实现的,samba只在IP子网内广播(很多时候我不得不指定IP地址:-().所以在win95上与samba
<br>通讯<font color="#3333FF">既要装NetBEUI协议,也要装tcp/ip协议!!</font>
<br>samba的主要部分有:
<br>&nbsp; 两个守护程序: smbd 和 nmbd(对客户端提供NetBIOS名服务)
<br>&nbsp; 配置文件: /etc/smb.conf
<br>&nbsp; 使用工具: smbclient,smbstatus,smbmount,smbumount,smbprint,smbprint.sysv,smbrun
<br>samba的启动脚本在/etc/rc.d/init.d/smb
<br>BTW,不要把smb与smp(对称多处理器)搞混了,更<font color="#3366FF">不要把NetBIOS名与DNS里的主机名搞混淆了!</font>
samba缺省
<br>是把主机名设置成NetBIOS名,这样通常会超出NetBIOS名的长度限制(16个字符).
<br>&nbsp;
<p>> 在win95网络邻居看不到Linux box?
<br>注意/etc/smb.conf文件里以下几项的设置:
<br>guest account = pcguest(不要照着写,添实际的名字,你要去创建一个pcguest帐号)
<br>null password = yes&nbsp; (这一点很重要!)
<br>browseable = yes
<br>public = yes
<br>另外把security改为share试试.
<br>仔细读一读"man smb.conf".
<p>再说瘟95那个破东西,网络邻居运行一百遍才可能会出来你想要的.
<br>用这个方法试一试:先用smbmount 瘟95的一个共享目录,用"网络监视器"查看一下,然后再用网络邻居看.
<p>> smbmount怎么用?
<br>不能用man smbmount看看吗? 大致是:
<br>smbmount //win95-name/share-dir /mount-point [-I ip地址或主机名] [-c
本机客户名]
<br>[]表示可选项, 本机客户名可以随便取.
<p>Samuel Leo补充道:
<br>标准的smbmount使用格式是
<br>smbmount //server/share -c "mount /mnt -u uid -g gid" (注:好象不对吧)
<br>我编译了一个修改版的smbmount, 使用格式为
<br>smbmount //server/share /mnt [passwd] [-Uusername] [-9]
<br><a href="ftp://202.103.190.5/incoming/smbmount.gz">ftp://202.103.190.5/incoming/smbmount.gz</a>
(binary)
<p>如果你用redhat, 也可以试试最新出的smbwrapper
<br><a href="ftp://202.103.190.5/incoming/smbwrapper.so.gz">ftp://202.103.190.5/incoming/smbwrapper.so.gz</a>
<p>设置一下环境变量
<br>LD_PRELOAD=/anywhere/smbwrapper.so
<br>SMBW_USER=username
<br>SMBW_PASSWORD=passsword
<br>SMBW_WORKGROUP=workgroup&nbsp;&nbsp;&nbsp; #optional
<br>SMBW_DEBUG=4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
#optional
<br>SMBW_LOGFILE=smbw.log #optional, default to stderr
<br>SMBW_PREFIX=/smb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
#optional, default to /smb
<br>export PWD SMBW_USER SMBW_PASSWORD SMBW_WORKGROUP
<br>export SMBW_DEBUG SMBW_LOGFILE SMBW_PREFIX
<br>然后你就可以"ls /smb"看到同组的所有机器名.
<br>"ls /smb/server"看该机的共享清单.
<br>缺点就是太慢, 10.10版对execle,execve,...等指定envp的exec仍有bug
<br>不能下执行/smb下的文件, 不能mmap /smb下的文件.
<p>> 先谢谢各位!
<br>> 我的Pwin95现在可以看到linux了,我保证什么也未修改过。
<br>> 现在,我从linux上执行:
<br>> smbclient //sjj2/nes(pwin95机器),可看到文件并显示:
<br>> smb:\>
<br>> smbclient -L sjj2,可看到sjj0(linux)和sjj2(pwin95)。
<br>> 但是我不能从pwin95上访问linux(sjj0),双击总显示:
<br>> 找不到机器名或共享名,请确认输入正确,然后重试。
<br>> 我对smbmount不会用,也找不到能看明白的帮助,因为
<br>> 我不理解mount-point的含义,请指导;linux上的
<br>> smbd和nmbd当然是运行的。
<br>> 再谢各位!请继续帮忙。smb.conf在前面的贴子中。
<p>Win95的网络邻居问题太多,别说跟Linux多不去,就是几台Win95之间连个小网,只要没有NT服务器,
<br>他们就经常互相找不到。 所以,一定要把samba的WINS服务器功能打开,(wins
support = yes),
<br>然后把95的WINS服务器指向他。也许还要加入:
<br>name resolv order = wins hosts bcast
<br><font color="#3333FF">这样做的话最好让Linux先于瘟95启动起来!</font>
<p>>我在REDHAT 5.1里可以共享WIN98的服务,在WIN98的网上邻居里
<br>>可以看到LINUX的机子,但提示\\linux\IPC$ 需要口令,输入口令总
<br>>不正确,不知该如何设置?
<p>此问题好象不单linux有,NT也有,原因是连接时没有用户名的信息,不要直接点击图
<br>标,用磁盘映射:\\linux\username&nbsp; 的格式
<br>WIN98使用加密的口令认证,而RedHat的SMB缺省使用明文认证,所以口令总是不正确。
<br>可以在smb.conf中加入
<br>encrypt passwords = yes
<br>并使用smbpasswd 维护用户口令
<p>&nbsp; Win98 上选 开始 -> 注销 ,用 Linux 机器上的用户名和口令登录,
<br>然后不用输入口令就可以访问 Linux 的资源了。这和 NT 上是一样的。
<br>或者 Linux 机器上的 /etc/smb.conf 里改成 security = share,
<br>guest account = username (username 改成你机器上的一个用户帐号)。
<br>这样如果 Win98 不是用 Linux 系统上的用户帐号登录的,也可以直接
<br>访问 Linux ,其权限等于 guest account 指定的用户的权限。Linux
<br>作出改动后要重启。
<br><font color="#FF0000">注:完全不必重新启动,可以到/etc/rc.d/init.d下去执行smbd
stop,然后再smbd start</font>
<br><font color="#FF0000">就可以了(这是在Redhat中).在Linux下要学会尽量不重启的基本技巧!</font>
<p>> 如何让win98发送明文密码呢?
<p>如果你用win98或打过很多补丁的win95. 如果samba不提供口令加密是不能登录的.
<br>1. 执行Win95_PlainPassword.reg允许win95发送明文口令
<br>运行REGEDIT,添加:
<br>[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP]
<br>"EnablePlainTextPassword"=dword:00000001
<br>2. 升级到最新的samba, 打开口令加密开关.
<p>> BTW:哪一版SMABA可设加密校验,如何设?
<p>我的 samba 1.9.18p10 就已经可以了.
<br>在 smb.conf 里面找到
<p># You may wish to use password encryption. Please read
<br># ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation.
<br># Do not enable this option unless you have read those documents
<br>encrypt passwords = yes
<br>smb passwd file = /usr/private/smbpasswd
<p>这一段就可以了.
<p>> 为什么smbclient \\NetBIOS-name\share-dir 总是不对?
<br>这是shell的原因,应该用smbclient \\\\name\\share-dir或者是smbclient
'\\name\share-dir'
<br>shell不处理两个单引号之间的内容.如果你熟悉C语言,应该很清楚为什么了!
<br>或者使用smbclient //NetBios-name/share-dir 就不存在这个问题。
<p>> 我在我的Linux机器上设好了smb.conf如下(删去了所有注释),为什么NT不认samba?
<br>把&nbsp;&nbsp;&nbsp; security = user
<br>改成:&nbsp;&nbsp;&nbsp; security = server
<br>samba 1.9.18以前的版本还不完全支持NT的所谓"域",
<br>2.0.0版正在开发中,对此有不小的进步.
<br>&nbsp;
<p>> 多谢姚飞大侠上回的指点。但我在安装时还是碰到了问题。我选择了shadow,no
pam,
<br>> 还选了disk quota,结果出现
<br>> quotas.c:38:sys/quota.h:No such file or director
<br>> 这以后再不能编译了。我把选择该为 shadow no pam ,no quota,有编译,出现:
<br>> cc:internal compoler error:program cc1 got fatal signal 6
<br>> make :*** [smbpass.o] Error!
<br>> 我再把shadow ,pam quota 等选项选来选去,总是这个错误都不变化了。好象以前编译
<br>> 通过的就不编了只编译后面的。我怎样才能让它重新编译?
<br>> slackware 3.4 kernel 2.0.30
<br>> Thanks!
<br>&nbsp;
<p>如果你用的是Slackware 3.4的话, 应该是shadow, no pam , no quota
<br>大概从1.9.18p4开始就无法正常编译了,到了smbpass.o必定出这个错.
<p>解决方法有几个:
<br>1. 直接下载编译好的文件
<br>2. 升级GCC到2.8.1, 或者 egcs-1.0.2
<br>3. 升级到Slackware 3.5
<br>&nbsp;
<p>>&nbsp;&nbsp; 本人单位财务部门需要装一台文件服务器,我安装了Redhat 5.1,用
samba
<br>> 作为文件服务器,客户端使用的是win95,现在win95已可以在网络邻居中找到
<br>> 服务器,我将共享目录映射为F:盘,经过试验,大幅度地拷贝文件都没问题.
<br>>&nbsp;&nbsp;&nbsp; 但是,因为财务软件是dos方式下的,当我执行F:\下的帐务程序时,一次、两次、
<br>> 甚至数次都没问题,但是若干次后每个客户端都出现死机现象。我将samba
<br>> stop一下,再start就可以了,请问这是怎么一回事?以前用NT做服务器并没有
<br>> 这样的现象。
<p>俺原来用RH 4.2, kernel 2.0.30+ samba 1.9.16p11也有同样的问题update后就ok了,
<br>现在俺用的是kernel 2.0.35 + samba 1.9.18p8
<br>&nbsp;
<p>&nbsp;<a href="network-samba-print-to-win.html">在Linux Box里共享Win上的打印机</a>
<p>&nbsp;<a href="network-samba-print-to-linux.html">共享Linux上打印机的问题</a>
<p>补充几个SMB的工具软件:
<br><a href="http://www.kde.org">KDE</a>里面带了个kcmsamba,类似于“网络监视器”的东西。
<br><a href="http://www.rz.tu-ilmenau.de/~lekus/">qnetmon/knetmon</a>:
类似于"网络邻居/网络监视器"的东西,用<a href="http://www.troll.no">qt</a>写的,带k的表示<a href="http://www.kde.org">KDE</a>。
<br><a href="http://www.open-systems.com/gtksamba.html">GtkSamba</a>: 嘿嘿,<a href="http://www.gtk.org">gtk</a>的爱好者与qt的爱好者对着干,真好!
<br><a href="http://www.rt.mipt.ru/frtk/ivan/TkSmb/">tkSmb</a>: 用tcl/tk写的前端图形界面.
<br>Samba的配置还可以用<a href="http://www.webmin.com/webmin">webmin</a>来做,这个软件允许你通过浏览器来配置Linux(Linuxconf
<br>也是可以的),但webmin只允许你用浏览器来配置。
<p>关于2.1.xxx的新内核,好象samba 1.9.18p5工作不正常,耐心等待samba 2.0吧!
<br>题外话,前些天我在<a href="http://freshmeat.net">freshmeat.net</a>上看到一个软件<a href="http://www.chez.com/littleigloo">LinPopup</a>,可以和winpopup互相chat,
<br>也是基于samba的.
<br>在<a href="http://eunuchs.org/linux/index.html">Everthing Linux</a>里看到一篇"<a href="http://eunuchs.org/linux/samba/index.html">Win95
Connectivity Using Samba/SMB</a>"。
<p>&nbsp; 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -