无需挂载即可从一个工作站到另一工作站的符号链接

无需挂载即可从一个工作站到另一工作站的符号链接

我正在尝试创建一个从一台 Linux 工作站到另一台 Linux 工作站的文件的符号链接,而无需“安装”任何网络共享。以下是我想做的事情,但无法让它工作。

ln -s /link/to/local/file.mov //10.0.1.103/sharedFolder/symlinkFile.mov

答案1

你不能:

符号链接只是一个额外的索引节点(指向文件的结构),该 inode 由 adeviceId和 an组成inode pointer。有效deviceId地指向/dev目录中的设备特殊文件,并且inode pointer指向该设备上的块。

您的网络位置10.0.1.103没有也不可能有deviceId(它不在 中/dev),因此您不可能有指向网络位置的符号链接。

另一方面,安装的网络共享将有一个 ,deviceId这就是为什么您可以创建指向安装位置的符号链接。

答案2

Windows 有一个特殊的语法,意味着位于机器上的文件通过\\MACHINE\DIRECTORY…\FILE\DIRECTORY…\FILE\\MACHINE中小企业协议。它内置于操作系统中并专门针对一种网络协议。

Linux 有一个基于以下概念的灵活文件系统安装。文件系统附加到现有目录,管理员可以选择如何安排目录层次结构。有关更多背景信息,请阅读Linux 中挂载设备是什么意思?,为什么 Linux 的文件系统被设计为单一目录树?典型的 Linux 系统上存在哪些挂载点?。 Linux 支持许多网络文件系统(即允许一台机器访问另一台机器上的文件的文件系统),包括网络文件系统, 中小企业,SSHFS, ETC。

NFS 可以被视为 Linux 的本机网络文件系统,就像 SMB 是 Windows 的一样。然而,Linux 默认情况下不导出其文件:您需要安装 NFS 服务器。 NFS 服务器在所有 Linux 发行版中都可用,但需要一些设置(您需要在文件中注册要导出的目录)/etc/exports)。此外,NFS 诞生于一个比较温和的时代,当时本地网络上的攻击者并不关心,保护它需要一些有关防火墙的知识,这超出了本答案的范围。要使/some/where远程计算机中的目录foo.example.com在该位置可用/local/dir(必须是现有目录),假设该目录是由远程计算机导出的,请以 root 身份运行以下命令:

mount foo.example.com:/some/where /local/dir

无需任何设置即可访问远程文件的简单方法是通过 SSHFS。您所需要的只是在远程计算机上安装 SSH 服务器,并sshfs在本地计算机上安装软件包。您还应该生成一个密钥(请参阅如何实现无密码登录),虽然你不如果您不介意每次都输入密码,请执行此操作。 SSH 对于在远程计算机上运行命令也很有用。要通过 SSHFS 使/some/where远程计算机中的目录foo.example.com在该位置/local/dir(必须是现有目录)可用,请运行以下命令(以常用用户身份):

sshfs foo.example.com:/some/where /local/dir

Linux 可以通过以下方式成为 SMB 协议的服务器或客户端(与 Windows 机器通信,甚至与其他 Linux 机器通信,尽管它的集成程度不如其他协议)桑巴舞软件。

您可以设置一个自动安装器(例如autofs),以便访问某些目录会自动从某些远程计算机挂载目录。例如,常见配置安排 autofs 文件系统挂载在 目录 上/net,并且访问会导致远程目录通过 NFS 挂载在该位置(并且在一段时间不活动后将被卸载)。当然,远程计算机必须设置 NFS 服务器并允许该连接。/net/MACHINE/DIRECTORY/DIRECTORY/net/MACHINE

可以使用 SSHFS 设置自动安装程序。看Linux 下使用 Fuse 和 Autofs 实现完全无缝的 SSHFSAutofs 和 sshfs – 完美组合快速教程;简而言之:

  1. 安装autofssshfs
  2. 将以下行添加到/etc/auto.master

    /mnt/sshfs /etc/auto.sshfs uid=1000,gid=1000,--timeout=30,--ghost
    

    将两次出现的 1000 替换为您的用户 ID 和组 ID(运行id -uid -g显示这些值)。创建目录/mnt/sshfs

  3. 创建一个/etc/auto.sshfs包含如下行的文件:

    machinename -fstype=fuse,rw,nodev,nonempty,noatime,allow_other,max_read=65536 :sshfs\#machinename.example.com\:
    

    其中machinename.example.com是远程计算机的主机名(或 IP 地址),machinename是您想要通过路径在本地访问它的名称/mnt/sshfs/machinename

自动sshfs提供更方便的autofs+sshfs设置。

最后,关于符号部分:您可以创建指向不存在路径的符号链接。符号链接是第二个参数,所以你需要类似的东西

ln -s /net/10.0.1.103/sharedFolder/symlinkFile.mov /link/to/local/file.mov

您需要手动或自动安排将/sharedFolderfrom10.0.1.103安装在/net/10.0.1.103/sharedFolder

答案3

物有所值 ...

我开发了一个名为的小工具狮子这是基于拉斐尔·卡瓦略 (Raphael S. Carvalho) 的GhostFS。目标是允许符号链接指向统一资源标识符。它相当不完整,有很多问题,并且目前仅支持 HTTP。保险丝(Userspace中的Filesystem)用于处理后台。

相关内容