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

Linux服务器
Linux Vsftpd本地用户不能登录问题
ChartDirector Linux下中文显示问题
关于Linux操作系统Fork的使用
Apache的基本设置和乱码解决方法
Apache的httpd.conf的配置详解
Linux Shell下的后台运行及其前台的转换
Linux操作系统两用户之间的信任关系
Linux操作系统下Shutdown命令-[option]
Linux系统下SSH远程登录速度慢?
Linux操作系统的时间服务器配置方法
Ubuntu Linux中文支持及编码问题
Linux下实现FTP虚拟主机的方法
Linux下查看某目录或指定文件大小的命令
Linux刷新主板BIOS的方法
闪盘(Thumb drive)装Linux系统
Linux文本模式下发送带附件的Email
删除文件提示:Operation not permitted
配置Linux的环境变量
Linux系统下硬盘挂载详细说明
Linux和Unix最常用的网络命令

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 58 ::
收藏到网摘: 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