一般而言为了系统安全, 都会专门新增一个共享账户, 但是为了方便阐述, 不再说明如何创建系统账户. 本文探讨 macOS,Linux,Windows 三种操作系统两两之间的文件共享方式, 根据数学中的排列组合知识可知, 总共有六种两两组合方式.
一, 应用场景
一般来说, 都是为了同一局域网内文件传输的便利性, 而且局域网文件传输速度很快. 自己可能有多台电脑或者需要与他人共享文件都可以采用这种方式. 还有就是需要远程调试代码, 比如在 Windows 下 IDE 做开发, 在远程 Linux 系统上调试.
注意: 共享账户设置的密码不是安全存储的.
二, Windows 系统之间共享文件
1. 添加网路位置, 如下图:
2. 根据示例提示, 输入正确的网站共享位置, 如下图:
3. 输入需要访问的主机 / 网站的账户和密码.
三, MacBook 与 Windows 共享文件
1.Windows 连接 MacBook (1)MacBook 共享文件设置 在 MacBook 系统偏好设置中选择文件共享, 点击 ""选项"", 指定共享用户并选择 SMB 方式共享, 如下图所示:
(2)Windows 连接 MacBook Windows+R -> 输入: "\mac 的 ip 地址" , 如 \192.168.1.1,MacBook 的 IP 地址可以在刚刚文件共享窗口看到, 类似于 "smb://ip 地址"; 输入刚刚指定的共享账户的账户名称和密码. 2. MacBook 连接 Windows (1) 在 Windows 系统下右击需要共享的文件夹, 选择高级共享, 如图:
指定共享用户, 如图:
(2) 在 MacBook 上打开 Finder, 在菜单栏中选择前往 --> 连接服务器, 服务器地址输入 "smb:// 主机名称或者主机 IP 地址"; 输入刚刚指定的共享账户的账户名称和密码.
四, Linux 与 Windows 系统之间共享文件
1.Windows 访问 Linux 共享的文件 使用 Samba 软件: 在 Linux 系统上安装该软件并进行相应配置即可:
yum install samba
安装完成后, 修改配置文件, 打开:/etc/samba/smb.conf, 在文件末尾加上如下配置:
- [shareUser]
- comment = shareUser
- path = /
- create mask = 0755
- writeable = yes
- browseable = yes
- valid users = root
添加共享用户: smbpasswd -a shareUser 重启服务: service smb restart 访问 Linux 系统: win+R->\\192.168.1.110. 完成共享. 2. Linux 访问 Windows 共享的文件 设置 Windows 共享文件内容的步骤如前面所述, 不再赘述, 接着在 Linux 系统上挂载 Windows 共享目录, 举例:
- mount -t cifs -o username="share" //192.168.1.1/sourcecode
- /root/sourcecode
接下来可以像访问本地文件一样正常访问 Windows 共享文件.
五, Linux 系统之间共享文件
一台 Linux 作为服务端, 另一台作为客户端.
1. 服务端
(1) 查看服务端系统是否已安装 NFS
- rpm -qa | grep rpc
- rpm -qa | grep nfs
没有的话, 就安装
yum -y install nfs* rpcbind
(2) 指定共享文件
共享文件, 比如共享 / home/sharedFolders 目录下的文件, 编写要共享的机器名
vi /etc/exports
- # 内容填写如下:
- /home/sharedFolders 172.31.93.1(ro)
/home/share / 是要共享的文件夹 后面接的是 ip + 网段, 括号里面的表示客户机对该目录下的文件的操作权限, r 表示可读, w 表示可写, x 表示可执行.
(3) 重启 NFS 服务 #特别注意: 因为在 6.0 的系统里, portmap 已经改名了. 在 RedHat 或 CentOS5 中可以使用 service portmap start 启动服务, 然后在启动 nfs 服务, 实现挂载. 6 里面可是试试 service rpcbind start 启动
- service rpcbind start
- service nfs start
- # 可以查看 NFS 服务端服务状态
- service rpcbind status
- service nfs status
- # 设置 NFS 服务端 nfs 服务自启动, 避免每次都要启动共享文件服务
- chkconfig --list rpcbind
- chkconfig --level 35 rpcbind on
- chkconfig --list nfs
- chkconfig --level 35 nfs on
(4) 查看 NFS 服务端的共享状态与查看客户端连接信息 首先:
- exportfs
- showmount -e
注: 要客户端连接之后才有. 然后:
- exportfs -rv
- service nfs restart
(5) 挂载共享目录 在客户端上面挂载 NFS 服务器中的共享目录 , 格式: mount NFS 服务器 ip: 共享目录 本地目录
mount 172.31.93.0:/home/sharedFolders /mnt/
六, MacBook 系统与 Linux 之间的文件共享
采用 Samba 协议, 全称 Server Message Block, 即信息服务块. 适用于类 Linux/Unix 系统, 可以在局域网上共享文件和打印机. 针对不同操作系统, 具体操作细节有所不同, 原理一致, 可以参考前面的 "五, Linux 系统之间共享文件".
七, MacBook 系统之间的文件共享
与 Windows 系统和 MacBook 系统之间共享文件的方式相同. 可以参考前面的 "三, MacBook 与 windows 共享文件".
八, 原理
Windows 系统提供一种远程文件系统机制, NAS 协议的一种 --CIFS 协议.
Linux 系统呢, 同样有另外一种 NAS 协议 --NFS 协议来实现远程访问. 那么这两种 NAS 协议能否互通呢?** 答案是否定的.** 虽然二者不能互通, 但是, 在 Linux 系统上面已经有了 CIFS 协议的服务端和客户端的实现, 这样, 无论是 Linux 给 Windows 共享还是 Windows 给 Linux 共享都可以借助这些已有的实现来做到了.
另一方面, Windows 系统天然就是一个 CIFS 的服务端和客户端, 既然 Windows 系统可以给 Windows 系统共享目录, 那么 Linux 系统能否访问这些共享呢? 答案是肯定的, 由于有强大的 VFS 支撑, Linux 支持挂载和访问各种文件系统. mount 工具支持挂在 CIFS 甚至 NTFS 的文件系统. 如果是 Windows 本机上面的 Linux 虚拟机, 那么可以直接通过虚拟机管理软件, 如 Vmware 直接共享本地的磁盘分区给 Linux 系统, Linux 系统根据 Windows 的磁盘分区的文件系统类型挂载即可.
前面 MacBook 用到的 SMB 网络文件协议是 CIFS 父集. MacBook 系统还可以选择 AFP 作为文件共享协议, 即苹果文件协议, 是苹果公司的专有协议, AFP 3.0 之后完全依赖 TCP/IP 创建通信. AFP 在 Mac OS9 是文件服务的主要协议.
微信公众号: 技术很有趣
来源: https://juejin.im/post/5bebec7b6fb9a04a04409374