当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > Samba服务器的设置

Linux服务器
Linux上双网卡绑定方法(Suse9SP3)
Linux操作系统调优参数的意义
Linux下使用SSH客户端及其Sftp文件传送
教你恢复被误删除的Linux文件
SQL Server注入大全及防御
Linux无法解析域名的解决办法
Linux系统下安装和配置MyEclipse的方法
Ubuntu下VirtualBox 1.4.0设置文件共享
Windows与Linux系统共享StarDict字典文件
修改Linux下相关的登陆信息
Windows通过SecureCRT远程登录Linux主机
Linux操作系统如何修改SWAP交换区的大小
Linux操作系统下为Apache目录添加密码
Linux时间设置与同步(NTP)
Linux内核补丁AMD旁路转换缓冲(TLB)错误
Linux架设DHCP服务器的方法
Fedora 8下Apache配置与管理
Linux操作系统下用单网卡捆绑双IP的方法
Ubuntu Linux系统环境变量配置文件
SUSE Linux中将Tomcat作为Service运行

Linux服务器 中的 Samba服务器的设置


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 64 ::
收藏到网摘: n/a


作者:wind521

一.由Linux向windows提供文件/目录及打印机共享。
在Linux服务器上的Samba运行起来以后,Linux就相当于一台文件及打印服务器,向win
dows
和Linux
Samba客户提供文件及打印服务。工作在共享模式或者用户模式下的两种方法较为常见(
Secu
rity=share
orSecurity=user),其中有以下常见问题。环境:RedhatLinux6.x
1.共享模式时从windows98客户端不能从网上邻居中看到服务器,或者看到后不能点击
进入
共享资源
说密码不对等等。
a.没有去掉行guestaccount=pcguest前面的注释符号
b.没有创建guest帐号pcguest(#useraddpcguest即可)
c.windows98默认发送加密的口令,而/etc/smb.conf中没有enableSamba加密口令。

或者也可以编辑windows98注册表,让它发送文本口令(不被建议的)
2.在/etc/smb.conf中定义了完全可写共享目录,但实际操作时不能写入。
a.特别要注意的是:LINUX本身的文件及目录权限永远大于SAMBA定义的权限,要让某共
享资
源目录
可以被写,首先要保证在LINUX下面该目录可以被相应的用户可写,这是前提。
3.在共享模式下如何对某共享目录加用户名及密码保护?
a.看下面的共享资源定义例子:
security=SHARE
usernamemap=/etc/smbusers
logfile=/var/log/samba/log.%m
maxlogsize=50
socketoptions=TCP_NODELAY
clientcodepage=936
oslevel=40
localmaster=yes
preferredmaster=yes
domainmaster=yes
guestaccount=pcguest
encryptpasswords=yes
smbpasswdfile=/etc/smbpasswd
[sales]
comment=testfolder
path=/sales/training
guestok=no
writable=yes
validusers=@sales
writelist=@sales
在上面的例子中,我们定义了security=shareandsambaencryptpassword,共享目录
名sa
les
不是guest用户可访问的,需要属于sales组里的用户可访问同时也可写,当然在Linux下
面要
保证
/sales/training目录可被组sales可写,这样以后
定义你的windowslogon(不是NT域登录)的用户名为组sales里的用户名,然后在网上
邻居
中双击
sales时会提示你密码,该密码是你在Samba服务器上定义的samba加密的口令,在上面的
例子

用户名和密码对存放在文件/etc/smbpasswd中,当然你事先要有系统用户名在/etc/pas
swd中

4.windows用户经常不能在网上邻居中浏览到Samba服务器的名字。
a.windows的网上邻居服务是非常不可靠的服务,它所建立的浏览列表不可靠,由众多
因素
引起。
b.一种可靠的解决办法是直接用‘查找’-‘计算机’-打入samba服务器的主机名进行
查找

注意要确保你在windows启动时没有取消登录。
c.你也可以在DOS窗口用netuse命令:如c:netusem:\sambaservernamesharereso
urce
name
5.服务器端的测试配置工具
a.在配置完/etc/smb.conf后运行testparm检测配置文件中是否有相应语法错误
b.在Samba服务起来后,用smbstatus报告用户使用和登录情况。
c.在更改过配置文件后,运行/etc/rc.d/init.d/smbrestart重读配置文件
二.在Linux客户机上使用LinuxSamba服务器
1.在Linux客户机上使用Smbclient
a.列出计算机192.168.100.1上所有可用的共享资源:
smbclient-L192.168.100.1
如果询问口令,则直接回车。
也可用名字如:
smbclient-Lsh3
若不知道sh3的IP地址,也可用
smbclient-Lsh3-I192.168.100.1
b.以某用户身份连接到Samba服务器192.168.100.1上的共享资源sales
smbclient//192.168.100.1/sales-Ujephe
提示口令后输入口令,也可把口令打在命令行上用%号分隔
为:smbclient//192.168.100.1/sales-Ujephe%password
提示符为smb:,就象是FTP一样
也可用名字如:
smbclient//sh3/sales-I192.168.100.1-Ujephe
你也可以用\符号,你的SHELL可能会过滤到特殊符号,则要这样写
#smbclient\\sh3\sales
2.通过IP地址查找netbios名字
a.在windows下用
c:nbtstat-A192.168.100.1
如果知道netbios名字,可用下面的命令得知提供某机器哪些服务
c:nbtstat-ahydra
b.在Linux下用
#nmblookup-A192.168.100.1
在一个网段内可用下面的命令检测哪些主机在提供samba共享服务:
#nmblookup-d2*or#nmblookup-B192.168.100.255*
检测其它网段内的某台机器是否提供samba服务
#nmblookup-A192.168.15.48
但不能用#nmblookup-B192.168.15.255*,因为一般的路由器和Linux双宿主机不转发
子网
直接广播。
3.netbiosoverTCP/IP使用的协议及端口号
a.共有三种netbios服务
netbios-ns137/udp(大多数)and137/tcp
netbios-dgm138/udp(大多数)and138/udp
netbios-ssn139/tcp
b.windows机器上的PC应用程序通过不同机器间的netbios名字来彼此通讯。
c.每次当windows机器启动时,它向整个网段内发出137/udp广播,一来登记向某
工作组内的主浏览器登记netbios名字,二来确信整个子网内没有与之相同的名字
d.网上邻居中所建立起来的浏览列表仅仅是列表,看不到也没有关系,同样也可以通过

计算机查找,netuse命令等来与别的计算机通讯,共享文件和打印机
e.不在同一网段内的机器或者是拨号到LAN上的PPP服务器后不可能进行网上邻居的浏览

这是因为子网内的广播不被串行线路和路由器转发。
f.如何在拨号到LAN上的PPP服务器后使用LAN上的Samba服务器?
<1>在windows目录下编辑c:windowslmhosts
如:192.168.11.3sh3#PRE#DOM:sales
执行nbtstat-R去enable它,不需要重启windows
<2>你必须登录windows,若是用户模式的samba,你应该选择windowsNT登录
<3>其它设置跟LAN上的机器一样
<4>拨号建立连接后,在查找‘计算机’功能定位资源
<5>现在你能使用远端服务器上的目录和打印机。
在不同网段内的机器也可参照此做法,也可用plug-gw代理tcp/139号端口访问另一网段
上的
samba
服务器。
4.用MicrosoftFTP服务器的简便方法。ftp.microsoft.com
a.加‘ftp到lmhosts文件
198.105.232.1ftp#PRE
运行nbtstat-R
b.netview\ftp
c.netuseg:\ftpdata
d.dirg:
5.smbmount的使用
a.#smbmount//192.168.100.1/pub/mnt/sh3-Ujephe%password