3.18 testparm命令
1.此命令行实用程序去检验Samba配置文件有无错误
如果所有配置是好的,testparm命令将返回 loaded services file ok并转储所有参数设置。注意,全局global参数设置在Smb.conf中,对于Samba服务器是一个实际全局参数设置的小子集。
2.测试Samba网络安全设置
去测试你的Samba服务器的网络安全,使用testparm跟一个IP地址:
testparm /etc/samba/smb.conf 192.13.87.2
这将通过smb.conf解析,并指示可以访问到在192.13.67.2主机上的哪些资源设备。调用testparm命令不使用主机名,以致他们得不到解析,并且从此以后testparm可以产生虚假的解析。(正确的解析将是完全一致的。)
3.19 Samba 客户端工具:Sambclient
1.Lmhosts文件
Linux系统中的/etc/hosts文件存放了TCP/IP主机名和IP地址的对应关系,即/etc/hosts是静态主机表。与之类似,samba使用/etc/samba/lmhosts文件存放NetBIOS名誉IP地址的静态映射表。
当linux主机作为samba客户访问windows的共享或其他linux提供的samba共享时,既可以使用IP地址访问,又可以使用NetBIOS名访问。如果使用NetBIOS名访问共享,就需要在samba客户上的/etc/samba/lmhosts文件中添加相应的记录。
例如:
127.0.0.1 localhost
192.168.1.1 win01
192.168.2.1 win02
2.Sambclient能被作为ftp风格文件检索工具来使用
smbclient是访问SMB服务器资源的客户程序。该程序提供的接口与ftp程序类似,访问操作包括从SMB服务器下载文件到本地,或从本地上载文件到SMB服务器,还可以在SMB服务器上检索目录信息等。命令语法如下:
/usr/bin/smbclient //smbserver/service [passwd] [-U username]
其中,smbserver是SMB服务器的NetBIOS名,一般与服务器的主机名一样,但不是必须的。"service"为服务器提供的服务,如文件服务public或打印服务printer。
passwd是访问某些服务时需要的口令。如果在命令行输入,后面则不会再提示输入口令。否则,将在后面提示输入口令。虽然有些需要访问的服务器不需要口令,但仍然会有输入口令的提示。如果不希望有口令提示,则可以在命令行使用"-N"选项。
如果要使用其他的端口与SMB服务器进行TCP连接,可以使用"-p"选项来指定,缺省值为139。
#smbclient //NetBIOS名或IP地址machine /共享名service
> cd directory
> get file
有时你将看到service 使用在share的位置;这两个单词是同意义的。此格式的路径//machine/service被叫做一个UNC路径。
3.允许简单地浏览共享资源
#smbclient -L NetBIOS名或IP地址machine
你可以为smbclient命令指定一个以连接用的用户名。在此命令中,如果你不指定,smbclient将使用USER或LOGNAME环境参数的Upper-case 版本,并且如果PASS WORD存在。
"-L"选项可以列出在一个服务器上提供的服务,例如:
/usr/bin/smbclient -L smbserver
使用下面的命令可以进入与ftp类似的提示状态:
/usr/bin/smbclient //smbserver/service
执行结果:
smb:\>
其中"\"表示服务器当前的工作目录。在该提示符下可以使用的命令可以通过"?"、"help"命令列出。命令不分大小写。
在该提示符下除了可以使用很多与ftp类似的命令外,还有命令recurse,它可以被设置为on,以便在使用mget或mput命令时能够get或put匹配的子目录。recurse缺省为off,即只get或put当前目录中的文件。
在该提示符下还可以使用下面的命令:
smb:\>tar c localfile filename
将服务器上文件名为"filename"的文件和目录(可以使用通配符)经过tar 拷贝到本地的"localfile "文件中。或者:
smb:\>tar x localfile filename
可以把本地tar 文件localfile 中的文件filename拷贝到服务器上;如果filename省略,则拷贝所有的文件。
上面的命令也可以在smbclient命令行上来执行,如:
/usr/bin/smbclient //smbserver/service [passwd] -T c local file filename
/usr/bin/smbclient //smbserver/service [passwd] -T x local file filename
4.user % password 可以用-U或通过设置和输出USER和PASSWD环境变量来指定
“-U”可以指定与SMB服务器连接时使用的用户名。如果没有指定,smbclient使用环境变量USER指定的值作用户名。如果没有USER环境变量,则用"guest"。
在环境变量USER中,可以设置"USER=username%password",这样就不用在命令行上输入口令。同时,使用ps命令看不到命令行参数,具有一定的安全性。同样,也可以使用"-U username%password"的形式指定用户名和口令。-U"指定的口令"%password"要优先于在命令行[password]中指定的口令。