linux smb

来源:互联网 发布:贴吧 回复淘宝链接 编辑:程序博客网 时间:2024/05/22 13:55
 你有福了!我正在搞SMB

给你点文档!!

zt:   SMB相关问题的解决方法  
http://www.chinaunix.net   作者:弱智     发表于:2003-09-25   07:33:27  

一.     由Linux向windows提供文件/目录及打印机共享。  
在Linux服务器上的Samba运行起来以后,Linux就相当于一台文件及打印服务器,向windows和Linux  
Samba客户提供文件及打印服务。工作在共享模式或者用户模式下的两种方法较为常见(Security=share  
or   Security=user)   ,其中有以下常见问题。   环境:   Redhat   Linux   6.x  

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    
b.   net   view   \\ftp  
c.   net   use   g:   \\ftp\data  
d.   dir   g:    

5.   smbmount   的使用  
a.   #smbmount   //192.168.100.1/pub   /mnt/sh3     -U   jephe%password  
原创粉丝点击