16.4 用类似FTP的客户端访问Samba资源
smbclient
在知道Samba服务器上有可供使用的共享资源之后,就能够登录和使用它们了。还是使用smbclient
命令,命令格式如下所示:
smbclient //server/share -U username
现在要登录的不是服务器,而是服务器上的共享资源。要访问有密码保护的资源(非常建议为共享增加密码保护),需要先指定一个用户。例如,要访问服务器ELIOT
上的documents
共享,可以使用以下命令:
$ smbclient //eliot/documents -U scott
Password:
Domain=[ELIOT] OS=[Unix] Server=[Samba 3.0.14a-Ubuntu]
smb: \>
如果能够出现Samba提示符(smb: \>
),就表明操作成功了。注意,操作中提示输入密码。假设用户scott的密码是123456(这是个非常糟糕的密码,不过,只是假想的而已),可以输入以下命令,操作过程中就不会再提示密码了:
$ smbclient //eliot/documents -U scott%123456
然而,这一做法是非常糟糕的,因为任何人只要看了.bash_history
文件(在11.1节中介绍)或使用ps
命令查看正在运行的进程列表(参见12.1节),就能够看到密码。绝对不要直接在命令中附加密码内容,在提示输入密码时再输入,这是一种更为安全的实践。
提示 如果正在编写一段脚本,即使不能通过交互方式来登录,也不能将密码直接附加到用户名上。应该使用
-A
(或—authen- tication-file=[filename]
)选项,通过该选项来引用一定的凭证文件(credentials file)。使用scott
用户,这个凭证文件应该包含以下内容:
username = scott
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
,就可以退出服务器的登录,返回到自己的计算机。