16.4 用类似FTP的客户端访问Samba资源

smbclient

在知道Samba服务器上有可供使用的共享资源之后,就能够登录和使用它们了。还是使用smbclient命令,命令格式如下所示:

  1. smbclient //server/share -U username

现在要登录的不是服务器,而是服务器上的共享资源。要访问有密码保护的资源(非常建议为共享增加密码保护),需要先指定一个用户。例如,要访问服务器ELIOT上的documents共享,可以使用以下命令:

  1. $ smbclient //eliot/documents -U scott
  2. Password:
  3. Domain=[ELIOT] OS=[Unix] Server=[Samba 3.0.14a-Ubuntu]
  4. smb: \>

如果能够出现Samba提示符(smb: \>),就表明操作成功了。注意,操作中提示输入密码。假设用户scott的密码是123456(这是个非常糟糕的密码,不过,只是假想的而已),可以输入以下命令,操作过程中就不会再提示密码了:

  1. $ smbclient //eliot/documents -U scott%123456

然而,这一做法是非常糟糕的,因为任何人只要看了.bash_history文件(在11.1节中介绍)或使用ps命令查看正在运行的进程列表(参见12.1节),就能够看到密码。绝对不要直接在命令中附加密码内容,在提示输入密码时再输入,这是一种更为安全的实践。

提示 如果正在编写一段脚本,即使不能通过交互方式来登录,也不能将密码直接附加到用户名上。应该使用-A(或—authen- tication-file=[filename])选项,通过该选项来引用一定的凭证文件(credentials file)。使用scott用户,这个凭证文件应该包含以下内容:

  1. username = scott
  2. password = 123456

一定要使用chmod命令(参见第7章)为这个文件设置一定的权限,不要让所有人都可以读取它。

在连接到Samba 共享以后,就可以使用很多类似于在命令行使用FTP时用到的命令(参见表16-1)。 表16-1 smbclient的重要命令

命  令 含  义
cd切换目录
exit关闭与Samba服务器的连接
get将指定的文件复制到本机
help获取与命令相关的帮助
lcd将目录切换到本机
ls列出Samba服务器上当前工作目录中的文件
mget将匹配一定模式的所有文件复制到本机
mkdir在Samba服务器上创建一个新目录
mput将匹配一定模式的所有文件复制到Samba服务器
put将指定的文件复制到Samba服务器
rm将指定的文件从Samba服务器删除

除了表16-1包含的基本信息外,在登录到Samba服务器后,只需输入help,就可以查看其他命令的帮助信息。完成操作以后,只要输入exit,就可以退出服务器的登录,返回到自己的计算机。