How to share files with Linux mint 22 via samba in Windows
概述
在上一篇文章 《How to share files with Windows via samba in Linux mint 22》中,我们向大家介绍了在Linux mint 22中如何借助samba向Windows 11分享文件的具体方法。
这里,我们着重向大家介绍一下,在Windows 11中如何借助Samba向Linux mint 22分享文件。
方案
Windows
我们先着重在Windows 11上做好以下几方面的准备工作。
Private network
确保当前网络(如以太网/WiFi)被识别为 “专用网络”,如下 图所示。
Create user
我们在Windows 11中创建一个名称为harbin
的用户,密码初始化为111111
。
Share Dirctory
我们在D
盘根目录中创建一个名称为lanzhou
的目录,右键单击目录,选择属性,系统会弹出目录属性对话框,如下图所示:
选择页签Sharing
,进入Sharing
页签,如下图所示:
点击按钮Share...
,进入对话框Network access
,如下图所示:
点击按钮Add
左侧的下拉列表,系统为我们展示出可用的用户,如下图所示:
选择harbin
,并点击按钮Add
,用户harbin
会被添加到已经授权可以访问的用户列表中,如下图所示:
这里,我们点击Read
右侧的黑色下三角图标,系统会为我们展示出来可以对用户haribn
的操作选项,如下图所示:
我们选择Read/Write
,这时harbin的权限就被我们修改为了Read/Write
状态,如下图所示:
点击按钮Share
,系统已经将目录设置为了已共享状态,如下图所示:
点击按扭Done
,我们会看到目录lanzhou
属性对话框中的Network Path
部分已经被系统分配了网络访问地址,如下图所示:
这里,我们点击按钮Colse
关闭目录lanzhou
属性对话框,至此,目录lanzhou
已经被我们设置为了共享目录,可以通过用户lwk
、harbin
两个用户通过网络方式访问。
Share Files
我们在目录D:\lanzhou
中创建一个名称为huanghe.txt
的文件,如下图所示:
我们将文件内容填充为:
黄河,中国人的母亲河。
The Yellow River, the mother river of the Chinese people.
如图下所示:
至此,我们在Windows 11上已经事先配置好了一个文件D:\lanzhou\huanghe.txt
。
Linux mint
Windows 11上配置好共享文件以后,我们就可以在Linux mint上正常访问了。
这里,为大家介绍两种访问方式:
- GUI
- Terminal
GUI
对于使用图形桌面版环境的用户来说,基于GUI客户端访问共享文件,是大家的首选。
打开文件管理器,在地址栏中输入以下内容:
smb://192.168.43.235/lanzhou/
如下图所示:
当我们在地址栏输入内容,并按Enter
键以后,系统会弹出认证对话框,如下图所示:
这里,我们在Connect as
项中选择单选按钮Registered User
,在文本框User name
中输入haribn
,在密码框Password
中输入111111
,这个时候,按钮Connect
会变为可用状态,点击该按钮,系统将为我们打开远程Windows 11主机192.168.43.235
上的共享目录lanzhou
,如下图所示:
这里,我们选择文本文件,用文本编辑器打开,就可以看到其中的内容了,如下图所示:
Terminal
对于Linux系统来说,终端Terminal也是大家日常使用的工具,那么,可以通过终端访问远程Windows 11主机192.168.43.235
上的共享文件吗?
当然可以!
smclient
我们打开终端,先查看一下,远程主机上有哪些共享资源,命令如下:
lwk@qwfys:~$ smbclient -L 192.168.43.235 -U harbin%111111Sharename Type Comment--------- ---- -------ADMIN$ Disk Remote AdminC$ Disk Default shareD$ Disk Default shareIPC$ IPC Remote IPClanzhou Disk
SMB1 disabled -- no workgroup available
lwk@qwfys:~$
我们看到,共享目录lanzhou
赫然在列。
接下来,我们查看一下远程主机上的共享目录中有哪些内容,命令如下:
lwk@qwfys:~$ smbclient //192.168.43.235/lanzhou -U harbin%111111
Try "help" to get a list of possible commands.
smb: \>
这个时候,我们已经进入了smbclient环境中,系统提示我们可以使用命令help
查看有哪命令可以用,我们尝试一下,看看:
smb: \> help
? allinfo altname archive backup
blocksize cancel case_sensitive cd chmod
chown close del deltree dir
du echo exit get getfacl
geteas hardlink help history iosize
lcd link lock lowercase ls
l mask md mget mkdir
more mput newer notify open
posix posix_encrypt posix_open posix_mkdir posix_rmdir
posix_unlink posix_whoami print prompt put
pwd q queue quit readlink
rd recurse reget rename reput
rm rmdir showacls setea setmode
scopy stat symlink tar tarmode
timeout translate unlock volume vuid
wdel logon listconnect showconnect tcon
tdis tid utimes logoff ..
!
smb: \>
我们看到,这里面有很多命令可以使用。
我们先看看目录中有些什么,命令如下:
smb: \> ls. DR 0 Mon Mar 24 03:07:01 2025.. DHS 0 Mon Mar 24 02:24:36 2025desktop.ini AHS 46 Mon Mar 24 03:07:01 2025huanghe.txt A 94 Mon Mar 24 03:00:57 2025157255935 blocks of size 4096. 154679019 blocks available
smb: \>
我们看到,有一个名称为huanghe.txt
的文件,被标记为了A
。
我们尝试下载一下这个文件,命令如下:
smb: \> get huanghe.txt
getting file \huanghe.txt of size 94 as huanghe.txt (18.4 KiloBytes/sec) (average 18.4 KiloBytes/sec)
smb: \>
这时文件默认会被下载到用户目录,我们可以使用如下命令查看已经下载到到本地的文件:
smb: \> !ls -la huanghe.txt
-rw-r--r-- 1 lwk lwk 94 Mar 24 03:50 huanghe.txt
smb: \>
那么当前文件下载到了什么地方呢?我们可以使用如下命令查看当前本地目录在什么位置:
smb: \> !pwd
/home/lwk
smb: \>
如果要将共享文件下载到其他位置,需要单独给出。比如说,我们将文件下载到目录~/Download/tmp
中,那么上述命令就应该调整为:
smb: \> get huanghe.txt /home/lwk/Downloads/huanghe.txt
getting file \huanghe.txt of size 94 as /home/lwk/Downloads/huanghe.txt (18.4 KiloBytes/sec) (average 18.4 KiloBytes/sec)
smb: \>
接下来,我们查看一下,刚才下载到用户目录中的文件huanghe.txt的内容:
smb: \> !cat huanghe.txt
黄河,中国人的母亲河。
The Yellow River, the mother river of the Chinese people.
smb: \>
我们看到,上述内容的确是我们在Windows 11上的共享文件D:\lanzhou\huanghe.txt
中的内容。
有的时候,我们也可以临时查看下文件的内容,不下载,这个时候,可以使用以下命令:
smb: \> more huanghe.txt
getting file \huanghe.txt of size 94 as /tmp/smbmore.Z9DK7y (18.4 KiloBytes/sec) (average 18.4 KiloBytes/sec)
smb: \>
我们看到,文件也是被下载到系统临时目录中去了。
想退出的话,用下述命令,即可退出:
smb: \> exit
lwk@qwfys:~$
有时候,我们也可以使用如下方法查看远程主机上的共享文件的内容:
lwk@qwfys:~$ smbclient //192.168.43.235/lanzhou -U harbin%111111 -c "get huanghe.txt -" |cat
黄河,中国人的母亲河。
The Yellow River, the mother river of the Chinese people.
getting file \huanghe.txt of size 94 as - (91.8 KiloBytes/sec) (average 91.8 KiloBytes/sec)
lwk@qwfys:~$
基于文件认证
上述演示过程中,我们连接远程主机上的共享文件是基于明文密码的,那么有没有什么方法可以将账号与密码存放到文件中,让smbclient
读取文件中的内容来避免明文密码访问呢?
当然有的!
我们接下来为大家演示。
每次输入IP地址比较繁琐,我们将远程主机地址添加到本地hosts文件中,为它取一个别名vm235
,以后就用这个别名访问远程主机,命令如下:
sudo tee -a /etc/hosts <<-'EOF'
192.168.43.235 vm235
EOF
接下来,我们为smbclient生成一个认证文件,以方便后续使用,命令如下:
touch ~/.smbcreds
tee ~/.smbcreds <<-'EOF'
username = harbin
password = 123456
domain = WORKGROUP
EOF
chmod 600 ~/.smbcreds
上述命令中,我们在用户目录中创建了一个名称为.smbcreds
的文件,
lwk@qwfys:~$ ll .smbcreds
-rw------- 1 lwk lwk 57 Mar 25 15:59 .smbcreds
lwk@qwfys:~$
文件只有当前用户可以读写,内容如下:
username = harbin
password = 123456
domain = WORKGROUP
接下来我们访问以下看看效果如何:
lwk@qwfys:~$ smbclient //vm235/lanzhou -A ~/.smbcreds
Try "help" to get a list of possible commands.
smb: \> exit
lwk@qwfys:~$
我们看到,已经访问成功。
我们再用参数--authentication-file
尝试一下,
lwk@qwfys:~$ smbclient //vm235/lanzhou --authentication-file=~/.smbcreds
ERROR: Unable to open credentials file!
Failed to set parse authentication file!
lwk@qwfys:~$
我们看到,这里出现了错误,出现这个错误,主要是因为参数--authentication-file
没办法识别用户目录别称~
,这里我们更换为全路径尝试一下:
lwk@qwfys:~$ smbclient //vm235/lanzhou --authentication-file=/home/lwk/.smbcreds
Try "help" to get a list of possible commands.
smb: \> exit
lwk@qwfys:~$
如此就好了。
小结
今天,我们为大家介绍了如何在Windows上通过Samba分享文件给Linux mint 22。