免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3394 | 回复: 2
打印 上一主题 下一主题

[samba] Linux操作系统上Samba常见问题解答 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-12-27 17:10 |只看该作者 |倒序浏览
一. 由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:\nbtstat -A 192.168.100.1

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


c:\nbtstat -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

论坛徽章:
5
NBA常规赛纪念章
日期:2015-05-04 22:32:03操作系统版块每日发帖之星
日期:2015-11-09 06:20:00操作系统版块每日发帖之星
日期:2015-11-10 06:20:00数据库技术版块每日发帖之星
日期:2016-01-14 06:20:00IT运维版块每日发帖之星
日期:2016-01-16 06:20:00
2 [报告]
发表于 2011-01-12 22:30 |只看该作者
回复 1# life-boy


    朋友,你在配置samba的时候会不会出现如下的错误:
  #smbclinet -L //127.0.0.1  
timeout connecting to 127.0.0.1:445
timeout connecting to 127.0.0.1:139
Error connecting to 127.0.0.1 ( Operation already in progress)
Connection to 127.0.0.1 failed (Error NT_STATUS_ACCESS_DENIED)

如果有碰到这样的问题,希望能够给我答案,在此多谢了。

论坛徽章:
0
3 [报告]
发表于 2011-01-13 16:25 |只看该作者
回复 2# wang509020


    你把iptables 关了试一下。
好像没有出过这种错。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP