怎么实现用linux访问windows的共享文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么实现用linux访问windows的共享文件相关的知识,希望对你有一定的参考价值。

1、mount挂载
首先创建被挂载的目录:
$ mkdir windows

将共享文件夹挂载到windows文件夹:
$ sudo mount -t cifs -o username=share,password=share //192.168.66.198/share ./windows

其中几个参数表示含义:
cifs:Common Internet File System,可以理解为网络文件系统。
usrname:访问共享文件夹的用户名
password:访问密码
//192.168.66.198/share:表示网络文件夹的地址,注意这里最后不能加/,如果是//192.168.66.198/share/则会报如下错误:mount: //192.168.66.198/share/ is not a valid block device
Tips:使用mount挂载的方法在系统重新启动后就会失效,如果希望开机时自动挂载,将下面设置加入/etc/fstab文件最后面就可以了。
//192.168.66.198/share /home/windows cifs defaults,username=share,password=share 0 2

其中/home/windows表示挂载点,就是上面windows目录的完整路径。
2、使用samba连接
samba就是让windows和unix系列os之间的文件可以互相访问的软件。使用samba访问windows的共享文件夹,需要安装smbclient。
$ sudo apt-get install smbclient

安装好后,就可以访问共享的文件了。
$ smbclient --user=share //192.168.66.198/share
Enter share's password: (输入密码回车)
smb: \>

此时进入了smb的命令操作空间,可以使用help来查看命令的使用。
smb: \> help

......省略若干命令......
exit get getfacl geteas hardlink
help history iosize lcd link
......省略若干命令......

也可以使用help查看单个命令的使用方式
smb: \> help get

HELP get:
[local name] get a file

小结
使用mount命令相对来说简单一些,基本linux系统都会带有这个命令;使用samba的话从windows也能访问linux的共享文件。
参考技术A mount挂载它,以smb模式,或者直接smbmount

怎么在linux和windows之间实现文件共享?

windows端共享文件夹

windows端先共享:
windows选择要共享的文件夹,右键选择属性
在这里插入图片描述
选择共享—>高级共享
在这里插入图片描述
勾选共享此文件夹,点击权限,给完全控制权限,然后应用—>确定
在这里插入图片描述
回到共享页面,点击共享
在这里插入图片描述
可以添加共享的用户,我选择共享给所有人
在这里插入图片描述
这个选项随意
在这里插入图片描述
完成共享!
在这里插入图片描述

windows端访问windows共享的文件夹:

在搜索框输入运行
在这里插入图片描述
输入\\\\ip即可访问
在这里插入图片描述
如下图访问成功!
在这里插入图片描述

linux端访问windows共享的文件夹:

先查看下windows端的用户:
打开控制面板,选择用户账户
在这里插入图片描述
可以看到windows的用户
在这里插入图片描述
然后在linux端用windows用户身份登录:

dnf install samba-client -y		#安装samba客户端
smbclient  -L //IP -U 用户		#用该命令即可用windows用户身份登录访问

linux端共享文件夹

要先在linux端安装samba服务:

samba的安装:
dnf install samba samba-common samba-client -y
#安装samba库、与Windows机器互操作的服务器和客户端软件、Samba服务器和客户端工具、samba客户端

samba服务启动:
systemctl enable --now smb.service

samba服务启用:
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload 

测试:
smbclient  -L //IP	##当要输入root密码时请直接回车

配置samba服务:

useradd -s /sbin/nologin -M smbuser 	#先在系统中建立一个不能登录且不建立家目录的用户
smbpasswd -a smbuser		#添加可以访问samba的用户
#这里的用户密码自己随便设,别忘了
mkdir /lucky						#该目录用来共享
chmod 777 /lucky					#防止文件本身权利的影响所以我们先给777权限

semanage fcontext -a -t samba_share_t '/lucky(/.*)?'	#目录及目录里的内容都改标签
restorecon -RvvF /lucky/			#刷新标签

cd /etc/samba/
mv smb.conf smb.conf.backup
cp smb.conf.example smb.conf

vim /etc/samba/smb.conf				#编辑配置文件
添加:
	[LUCKY]							#共享名称			
	comment = lucky					#共享说明
	path = /lucky					#共享路径
	writeable = yes					#可写

systemctl restart smb.service

linux端访问linux共享的文件夹:

smbclient  //IP/LUCKY -U smbuser	#访问LUCKY这个共享目录
#输入exit可以退出

在这里插入图片描述

windows端访问linux共享的文件夹:

在搜索框输入运行
在这里插入图片描述
输入\\\\ip即可访问
在这里插入图片描述
会要求你输入账号密码,我们用上面创建的smbuser用户和自己设置的密码登录即可
在这里插入图片描述
然后就可以看到共享的目录了!
在这里插入图片描述
下一次登录会自动进入,删除访问记录后就会需要重新登录

net use			##查看访问记录
net use * /del		##删除访问记录

在这里插入图片描述

以上是关于怎么实现用linux访问windows的共享文件的主要内容,如果未能解决你的问题,请参考以下文章

怎样用Samba实现windows和linux之间文件的网络访问

主机win7 客户机debian 虚拟机virtualbox 怎么用samba实现共享

怎样用Samba实现windows和linux之间文件的网络访问

linux 挂载共享文件夹

怎么实现当域客户端访问linux共享文件服务器时不需要输入帐号密码呢,没加入域的客户端访问则需要提供帐户

linux用samba共享, 为啥在windows下访问时只能看到文件夹, 而文件不可见?