Samba的故障排除可以在SMB服务器和SMB客户机上通过各自的命令来完成。
1 SMB服务器上的操作
1).使用下面的命令来查看是否有错误的配置。
/usr/bin/testparm /etc/smb.conf
2). 在服务器上以及客户机上用ping命令检查tcp/ip是否正常工作。
3). 在SMB服务器上用
/usr/bin/smbclient -L SMBserver
命令将得到一个共享的列表。
如果出现失败信息,则要检查与服务器相关的"hosts allow"、"hosts deny"、"valid users"、"invlid
users"等参数的设置。如果出现"connection
refused",则检查Samba服务器进程是否启动;若Samba以守护进程形式运行的话用"netstat -a"命令检查端口是否处于监听状态。
4). 运行了命令"/usr/bin/nmblookup SMBserver",将返回SMB服务器的IP地址。否则nmbd没有正确的运行。
5). 运行"/usr/bin/nmblookup -d 2 \'*\'
"命令,在子网中运行NetBIOS/TCPIP的主机将会响应。否则说明nmblookup
不能正确的得到广播地址,可以尝试在smb.conf文件中用interfaces参数人工设置IP地址、广播地址和子网掩码。
6). 运行"/usr/bin/smbclient
\' \\\\SMBserver\\homes"命令,需要输入客户在SMB服务器上的用户口令,然后会出现类似"smb>"的提示符。这时可以使用 dir命令浏览客户在SMB服务器帐户目录下的文件,用help命令可以得到其他命令的帮助。如果不能出现类似"smb>"的提示符,并且有 "invalid
network name"的错误信息,则有可能homes共享没有正确的设置;或者有"Bad password",则要检查"shadow
password"、"password encryption"以及参数"valid users"和"path"的设置。
2、SMB客户机上的操作
1). 运行"net view \\\\SMBserver"命令,应该能够列出SMB服务器上的共享。
如果出现类似"network name not found"的错误,则要检查客户机上DNS或WINS的设置。如果出现"Invalid network
name"或"bad password error"的错误,则参照与上面"smbclient
-L"命令中同样的错误结果的解决方法。要注意客户机将要用客户注册客户机时所用的用户名/口令去与SMB服务器连接,所以在SMB服务器上,用户最好有同样的用户名/口令。
2). 使用"net use
x;\\\\SMBserver\\homes"命令,可以把SMB服务器上客户home目录映射到客户机"x:"盘,"x:"应该是一个客户机上未用的盘号。这样,共享的目录可以在客户机上以"x:"盘来看待。正常的信息为"command
complete successfully"。
如果要停止使用"x:"盘,可以使用"net use
x:/delete"命令。如果不能正常的把客户的home目录映射到"x:"盘,则要检查SMB服务器上"hosts
allow"等参数的配置。如果客户机上的用户名不能与服务器上的用户名匹配,尝试使用"username map"选项。
3). 如果在SMB服务器上没有使用"encrypted passwords",则在客户机上要在注册表中允许使?quot;普通文本"格式的口令。
小结
Samba是SMB的一种实现方法,主要用来实现Linux系统的文件和打印服务。Linux用户通过配置使用Samba服务器可以实现与Windows用户的资源共享。
守护进程smbd和nmbd是Samba的核心,在全部时间内运行。nmbd
程序使得通过企图计算机可以浏览Linux服务器。Smbd守护进程在SMB软件包到达网上时对它们进行处理,并且为使用或共享它的资源与Linux进行协调。
在安装完Samba后,还需要定制它的配置文件smb.conf,才能使Samba正常工作以符合要求。smb.conf文件的的语法结构与Windows 的*.ini文件十分类似;文件结构主要包括三部分:全局参数部分、目录共享部分、打印共享部分;本文着重介绍了如何配置各选项以完成特定的功能。
通过使用不同的参数,可以实现对Samba的不同访问控制:通过主机地址限制访问、通过用户口令限制访问、通过用户名限制访问、通过验证读写权限限制访问、通过是否在浏览器列表里显示来控制等。所有这些方法,大大的增强了Samba服务器的安全性。
阅读(3332) | 评论(0) | 转发(0) |