Linux访问共享资源命令 smbclient

-

smbclient用法 :

   参  数:

[网络资源][网络资源]的格式为//服务器名称/资源分享名称。

[密码]输入存取网络资源所需的密码。

-B<IP地址>传送广播数据包时所用的IP地址。

-d<排错层级>指定记录文件所记载事件的详细程度。

-E将信息送到标准错误输出设备。

-h显示帮助。

-i<范围>设置NetBIOS名称范围。

-I<IP地址>指定服务器的IP地址。

-l<记录文件>指定记录文件的名称。

-L显示服务器端所分享出来的所有资源。

-M<NetBIOS名称>可利用WinPopup协议,将信息送给选项中所指定的主机。

-n<NetBIOS名称>指定用户端所要使用的NetBIOS名称。

-N不用询问密码。

-O<连接槽选项>设置用户端TCP连接槽的选项。

-p<TCP连接端口>指定服务器端TCP连接端口编号。

-R<名称解析顺序>设置NetBIOS名称解析的顺序。

-s<目录>指定smb.conf所在的目录。

-t<服务器字码>设置用何种字符码来解析服务器端的文件名称。

-T<tar选项>备份服务器端分享的全部文件,并打包成tar格式的文件。

-U<用户名称>指定用户名称。

  -W<工作群组>   指定工作群组名称。

smbclient //192.168.0.100/share -Uadministrator 回车后,会提示输入admin的密码.之后就可以通过get获取了 192.168.0.100是我在windows主机的IP,share为共享名,-U后面是用户名

命令 说明 

?或help[command]提供关于帮助或某个命令的帮助

![shellcommand]执行所用的SHELL命令,或让用户进入SHELL提示符

cd[目录]切换到服务器端的指定目录,如未指定,则smbclient返回当前本地目录

lcd[目录]切换到客户端指定的目录;

dir或ls列出当前目录下的文件;

exit或quit退出smbclient

getfile1file2从服务器上下载file1,并以文件名file2存在本地机上;如果不想改名,可以把file2省略

mgetfile1file2file3filen从服务器上下载多个文件;

md或mkdir目录在服务器上创建目录

rd或rmdir目录删除服务器上的目录

putfile1[file2]向服务器上传一个文件file1,传到服务器上改名为file2;

mput file1 file2 filen 向服务器上传多个文件 

若windows中有一个共享文件夹Share,Windows用作服务器

要设置可以写的权限.

一):与Windows服务器建立连接   www.linuxso.com收集 谢绝转载.

smbclient  //192.168.0.100/Share  -u  administrator     

回车后,会提示输入admin的密码. 

通过密码验证之后,

会出现:

smb:\>

这样子状态等待输入.

1.1  列出文件状态

 smb:\>ls

通过ls就可以看出当前所有文件状态

1.2 从windows中取得文件

若有文件bbb.log

则输入:

smb:\>get bbb.log

1.3若要所linux中的文件传输到windows之中

则文件在根目录下  文件名:linuxso.log

则输入:

smb:\.>put /linuxso.log    linuxso.log

 

1,列出某个IP地址所提供的共享文件夹

smbclient -L 198.168.0.1 -U username%password

 

2,像FTP客户端一样使用smbclient

smbclient //192.168.0.1/tmp  -U username%password

 

执行smbclient命令成功后,进入smbclient环境,出现提示符: smb:\>

这里有许多命令和ftp命令相似,如cd 、lcd、get、megt、put、mput等。通过这些命令,我们可以访问远程主机的共享资源。

 

3,直接一次性使用smbclient命令

smbclient -c "ls"  //192.168.0.1/tmp  -U username%password

smbclient //192.168.0.1/tmp  -U username%password

smb:\>ls

功能一样的

 

例,创建一个共享文件夹

smbclient -c "mkdir share1"  //192.168.0.1/tmp  -U username%password

如果用户共享//192.168.0.1/tmp的方式是只读的,会提示

NT_STATUS_ACCESS_DENIED making remote directory \share1

 

 

在Linux下,可以通过smbclient命令来实现相似的功能,访问Windows的某个共享目录。

 

 

 

使用平台:

Red Hat Enterprise Linux AS release 4

IP:192.168.1.197

 

Windows XP Professional SP2

IP:192.168.1.198

windows下的共享文件夹hello里面有个1.txt的文本文件

 

 

 

前提条件:

1、Windows和Linux共处于同一个局域网中,可以互相ping通,都未设置防火墙

2、Linux上安装有samba-client的RPM包,它是Samba客户端工具

 

 

 

在Linux下输入

#smbclient -L 192.168.1.198 -U administrator

Password:(输入windows系统所需要的密码)

列举出windows系统192.168.1.198上的所有共享目录

 

 

 

#smbclient //192.168.1.198/hello -U administrator

Password:(输入windows系统所需要的密码)

访问hello目录

 

 

 

#ls 列举出hello目录下的所有文件

 

 

 

#get 1.txt /opt/share/1.txt

将得到的文件复制到Linux系统的/opt/share/路径下。

 

 

 

将所有的文件获取完成后

#q  退出。

 

下面是RHCE考试题目中一道关于samba配置的题目

 

通过配置SMB共享/common目录:

1) 必须是STAFF工作组的一员

2) 共享名是common

3) common只对example.com可用

4) 用户harry可在example.com域内访问

5)用户harry的password为123abc

 

#yum install samba*

#chkconfig samba on

#service samba start

#smbpasswd -a harry

#setsebool -P samba_enable_home_dirs on(要不是共享家目录的话就不会影响)

#getsebool –l 

#chcon -t samba_share_t /common

#vim /etc/samba/smb.conf

workgroup = STAFF

[common]

comment = this is a test smb

path= /common

public=no

write list = harry

browseable = yes