SMB是一种流行的协议,用于通过网络共享文件。即使它是为Windows操作系统创建的,Linux发行版也支持它。smbclient命令可用于轻松访问Windows共享。通过使用smbclient,可以方便地列出、上载、删除或导航远程Windows共享。smbclient命令还提供了一个交互式shell。
安装smbclient
smbclient命令与大多数Linux发行版的smbclient包名称一起提供。这个包也被描述为“Unix的命令行SMB/CIFS客户机”。
Debian、Ubuntu、Mint、Kali:
sudo apt install smbclient
CentOS、RHEL、Fedora:
sudo dnf install smbclient
列出SMB共享
smbclient可以用于不同的操作,但最常用的用法是列出远程系统的指定SMB/CIFS Windows共享服务的共享。-L选项与smbclient命令一起用于列出所有共享。
smbclient -L fileserver
或者,可以使用远程服务器IP地址来列出与 -我 选项。在下面的示例中,我们列出了IP地址192.168.1.10提供的共享。
smbclient -L 192.168.1.10
列出提供用户名的SMB共享
windows共享可能需要通过提供用户名和密码来使用凭据进行访问。因此,为了列出SMB共享,我们应该提供用户名和密码。-U选项用于指定用户名。在下面的示例中,我们将用户名指定为“ismail”,以列出远程文件服务器上的共享。
smbclient -L fileserver -U ismail
指定用户名后,将请求此用户的密码。
相关文章: Linux xclip命令教程
列出指定的共享路径内容
smbclient可用于列出指定的路径或目录内容。列出路径添加在远程共享主机名或IP地址之后的共享也是一样的。在下面的示例中,我们列出了“Backup2021”的内容。
smbclient -L fileserverBackup2021
或者,文件共享主机的IP地址可以如下使用。
smbclient -L 192.168.1.10Backup2021
Smb客户端交互Shell
smbclient最强大的特性之一是它的交互式shell。远程共享可以像FTP和FTP一样连接,并通过smbclient提供一个新的shell。这个shell可以用来导航,列表,上传,下载等文件。只需提供远程共享,就可以启动smb shell。
smbclient "fileserverBackup"
如果需要,可以为用户名提供-U选项,然后自动提示密码。
smbclient "fileserverBackup" -U ismail
列出文件和文件夹
在smbclient交互式shell中,我们可以使用ls命令列出文件。
smb: > ls
上载文件和文件夹
可以使用mput命令上载文件和文件夹。但是,为了上传指定的文件夹及其内容,应该使用recurse命令启用递归模式。也可以用mput命令开始上传。
smb: > recursesmb: > mput picturessmb: > mput /home/ismail/downloads
下载文件和文件夹
还可以使用mget命令下载文件和文件夹。如果有多个文件和文件夹要下载,则应使用recurse命令启用递归模式。
smb: > recurse
smb: > mget pictures
列出文件和文件夹属性
与本地文件和文件夹一样,SMB共享文件和文件夹具有不同的属性。这些属性可以是大小、权限、NTFS属性等。文件和文件夹属性可以通过指定文件名用allinfo命令列出。
smb: > allinfo data.txt
错误NTU状态U连接被拒绝U
SMB客户端尝试连接通过SMB端口运行的远程windows共享服务。如果这些端口由于不同的原因无法访问,我们可能会出现如下错误“ 错误NTU状态U连接被拒绝U “. “Error NTu STATUSu CONNECTIONu densed”错误与网络和防火墙有关。服务可能未运行,或者防火墙阻止访问此服务,或者存在网络问题。
相关文章: 如何列出Ubuntu中安装的软件包?