Linux上挂载windows共享目录

Linux上挂载windows共享目录,第1张

    笔者最近经常需要在windows和树莓派之前来回拷贝文件,最开始是使用U盘,然后使用VNC自带的文件传输工具,支持来回传输文件。也有一些SSH工具支持传递文件,但是频繁拷贝来说确实繁琐了些。windows的开发平台和工具用起来更加的和谐友好,比如写php文件,笔者一般在windows写好再上传到服务器,传递也很耗时间。最近闲逛才知道可以linux可以挂载windows共享目录,孤陋寡闻的认为只能挂载硬盘、U盘等。那我们开始吧。

    1、在linux下要挂载windows的共享文件,需要安装cifs-utils软件包。

    dpkg -l|grep cifs-utils可以查看是否安装了这个软件包,which mount.cifs可以查看这个软件包安装在哪里。sudo apt-get install cifs-utils可以安装软件包。

2、建立一个目录用来作挂载点。

    笔者准备将共享目录挂载在mnt目录下,在mnt目录下建立share目录,sudo mkdir share 。

3、window共享share文件夹

    文件夹上右键属性,设置共享属性。

4、挂载 *** 作

    sudo mount -t cifs -o username=Administrator,password=123456  //192.168.31.33/share /mnt/share。

    192.168.31.33为windows的IP地址,Administrator为windows的用户名,123456为用户密码。在测试时,笔者不会不设置密码会出现告警,“mount error(13): Permission denied;Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)“,设置windows的用户名密码后才能挂载成功。还有注意用户名Administrator第一个字母有可能是是大写的,所以一定要对应好用户名。

5、测试大功告成

    在windows新建修改文件,在linux可以自由查看,修改就需要root权限了。

6、取消挂载

    sudo umount /mnt/share 。当然,重启linux后挂载自动会取消。需要重新挂载。

7、脚本控制来挂载共享文件夹

    为了方便起见,在开启linux后需要重新挂载共享文件夹,这一串命令可要让人头疼了,那么脚本来帮助!执行效果如下。如果挂载路径不一样,可要修改脚本用参数定位到新路径,那笔者就不尝试了。$? 执行上一个指令的返回值 ,显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

   欢迎取用:

Windows之间可以利用“网络邻居”来实现资源共享,而Linux之间可以使用NFS来实现资源共享。

Linux可以通过Samba来实现和Windows主机互通有无的。Samba采用Client/Server架构,执行Samba客户端程序,就可以访问Windows主机上的共享资源;而运行Samba服务器,Windows主机就可以访问Linux上的共享资源。Samba 为 UNIX 和 Microsoft Windows 之间的通信架起了一座桥梁。

它是一套程序,支持基于 UNIX 的主机与基于 Windows 的主机共享文件与打印机。除了共享文件和打印机之外,Samba 还可以充当 Windows 域控制器。(Domain Controller),这样就可以通过 UNIX 服务器管理 Windows 网络。作为域控制器, Samba 让自己可以为漫游的(roaming)或者本地的用户创建登录配置文件(login profiles)。

前提说明:

windows主机信息:192.168.1.100 帐号:abc 密码:123 共享文件夹:share

linux主机信息:192.168.1.200 帐号:def 密码:456 共享文件夹:/home/def/share

由于暂时还不会防火墙和SELINUX配置,而下面有些方法中的 *** 作会受到他们的限制,因此先关闭这俩。

关闭防火墙的命令:service iptables stop

关闭SELINUX命令:setenforce 0

一、实现linux和windows之间的文件夹共享

方向:windows访问linux

方法1:使用第三方软件

1、修改配置文件:vi /etc/ssh/sshd_config,主要是把Port这个参数解除注释,其他参数可以根据情况自己修改。

2、重启ssh服务:service sshd restart

3、在windows下安装SSH Secure SHELL,安装成功后有个子程序SSH Secure File Transfer Client,打开后输入:

hostname:192.168.1.200(如果有DNS服务,可以写成linux主机名)

port:22(默认值,可以修改成其他值)

username:abc(也可以是linux下其他帐号)

password:123

连接成功后就可以在windows下向linux上传和下载文件了

方法2:SAMBA共享

1、安装samba:可以先检查下是否已经安装:rpm -qa | grep samba,没有的话自己安装下,这里介绍下基于RPM包的一种在线安装模式yum

yum是一种快速安装模式,它会自动解决软件安装时的依赖问题并自动去特定的服务器下载相应的软件进行安装,命令十分简单:yum install samba,快捷方便的背后离不开程序员的辛苦啊!

2、创建共享文件夹,这里就是mkdir -m 777 /home/def/share

3、修改/etc/samba/smb.conf,这里面的参数就比较多,主要是

workgroup = WORKGROUP(这个就是windows工作组模式,还有一种是域模式)

hosts allow = 192.168.1.100(可以放问的IP地址,这里写的时windows地址)

然后在文件的结尾加上

[public](共享名,就是windows访问时会显示的名称)

comment = Public Stuff(注释)

path = /home/def/share(共享名)

public = yes(公开)

writable = yes(可写)

当然这里只是些基础的参数,还有其他的参数根据情况设置,比如会出现乱码,还要指定编码格式。

4、重启smb服务:service smb restart

5、创建samba客户:smbpasswd -a def,回车后会提示输入密码。这个就是将来远程主机登录时需要的密码,这里的def帐号必须时系统已经有的

帐号,没有的话会报错,然后新输的密码就是远程登录密码,这样做的好处就是自己的密码和远程登录的密码分开。

6、windows下连接,启动运行,输入\\192.168.1.200,输入smb帐号密码就可以了

方向:linux访问windows

方法一:挂载共享文件夹

在linux下执行 mount -o username=abc //192.168.1.100/share /mnt/share,回车后要求输入密码,就是windows密码123

老实说这种方法是很好理解的,挂载命令嘛,最简单的语法。但却是让我困惑最深的,因为linux下的分区格式是ext2\3\4,而windows一般使用NTFS格式,这是linux不能识别的,而这里竟然可以挂载,而且还能读出其中的文件。真是太匪夷所思了。

三、实现linux之间的文件夹共享

方法一:挂载

1、在A机上创建共享文件夹:mkdir -m 777 /home/share

2、修改/etc/exports文件,添加一条 /home/share *(rw),这条中/home/share指定了共享位置,*代表所有主机,也可以单独写IP地址,rw是可读写

3、重启nfs服务:service nfs restart

4、在B机上挂载:mount -t nfs 192.168.1.100:/home/share /mnt/share,回车输入帐号密码就可以了

5、最后就是在B机上验证下是否挂载成功,命令:df

方法二:使用SCP命令传输

这条命令是我昨天刚学到的,很简单的 *** 作 scp /home/share(源) 192.168.1.200:/home/share(目的),回车后要输入密码,具体详见man scp


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/6136307.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-16
下一篇2023-03-16

发表评论

登录后才能评论

评论列表(0条)

    保存