如何使用文件管理器文件打开对话框从网络共享中选择文件

如何使用文件管理器文件打开对话框从网络共享中选择文件

我在 Xubuntu 16.04 上使用 nemo 文件管理器。

我已连接多个网络共享。我还为它们添加了书签。在 nemo 中,我可以访问所有文件。当我尝试使用应用程序打开文件时,我确实会得到一个没有这些共享的标准文件打开对话框。有“其他位置”,但只提供已安装的驱动程序。没有书签,没有网络共享。

本质上,我不知道如何使用应用程序在 Xubuntu 中打开任何网络文件。我看到的唯一解决方法是将所有文件复制到主目录,在那里打开它们,完成后将它们存储回网络共享。我相信一定还有其他方法。请帮忙!

PS:我认为这并非 Xubnutu 桌面独有的。当我选择 thunar 作为首选文件管理器时,情况也一样。

答案1

我找到了一个答案,但我希望这不是最好的答案。我在那篇文章中找到了它:https://forums.linuxmint.com/viewtopic.php?t=144053。这确实是一种解决方法。

桌面文件管理器不是在主目录中安装网络共享,而是在 Linux 目录树中安装。实际上,这个想法是有后果的,因为网络共享包含用户权限。这意味着并非每个用户都能够访问每个共享。这意味着您可以让不同的用户同时连接同一个共享,每个用户都有不同的权限。这意味着,共享不能按共享名称存储,而必须由用户指定。

因此,就我而言,他们决定将所有共享都挂载到文件管理器中

 /run/user/1000/gvfs/

该目录中包含所有共享。1000 是我当前的“用户 ID”。在具有多个用户的系统上,它可能是 1061 或其他任何数字。'gvfs' 是关于所涉及的文件系统技术。名称有点神秘,如“smb-share:server=myserver,share=images”,但至少可以识别。目前,我看不出与 /home/username/shares 或 ~/shares 相比有什么优势,每个应用程序只需单击 2 次即可访问它们。也许有人可以启发我。

因此,正如帖子中所述,解决方法是基于这样的事实:本地书签实际上列在文件打开对话框中(共享则不然)。因此,只需转到您的版本

 /run/user/1000/gvfs/

并添加书签。这会在文件打开对话框中列出,然后您就会进入共享列表。您会看到一个书签“gvfs”,您可以将其重命名为“网络共享”

因此,它基本上解决了问题,并且只需单击两次,但不知何故它仍然是一个非常糟糕的解决方案和变通方法。我仍然无法浏览网络。当我没有在文件管理器中安装共享时,我看不到任何东西。所有功能都已存在于文件管理器中,什么可能阻止将该功能公开到文件打开对话框的决定?请随时添加评论以帮助新用户理解这一点。

谢谢并希望得到更好的答案。

答案2

我认为这是由于这个错误造成的:

https://bugs.launchpad.net/ubuntu/+source/gtk+3.0/+bug/1714518

有一个补丁可用,我猜将来的更新可能会解决这个问题。很抱歉,我无法告诉你如何安装补丁,因为我自己不知道怎么做。

答案3

由于我有一段时间没有收到其他反馈官方对此问题的回答是“不可能”

这个答案的其余部分提供了最好的解决方法我能想出这个办法。它以适当的方式连接共享,并让它们在主目录中安全且易于访问。

如果您没有安装“cifs-utils”,SMB 挂载将无法工作。在 Linux 中,当缺少该程序时,您会收到非常隐晦和误导性的错误消息,例如“挂载:错误的 fs 类型、错误的选项、//myserver/sharename 上的错误超级块……”

sudo apt install cifs-utils

为了确保安全,请在您的主目录中放入一个密码文件。它以明文形式保存您的 SMB 密码,因此不要忘记保护文件(见下文)。请注意,这些取决于共享,它们可能与您在 Linux 机器上的登录密码不同。

nano ~/.smbcredentials
  username=joe
  password=Doe711
  domain=myworkgroupname

不要忘记确保文件的安全,除了您自己的用户之外,其他任何人都无法访问它:

chmod 400 ~/.smbcredentials

现在创建共享应该出现的目录(挂载点)

mkdir ~./network
mkdir ~./network/myserver
mkdir ~./network/myserver/sharename

对于每个共享,像这样在 fstab 文件中添加一行。我还没有找到提供用户 ID 和组 ID 的方法,至少我没有找到(我认为这很不雅观,因为这些信息应该放在凭证文件中)。这是一行很长的行。注意空格。不要在没有空格的地方添加任何空格。

sudo edit nano /etc/fstab
  //myserver/sharename /home/joe/network/myserver/sharename cifs credentials=/home/joe/.smbcredentials,uid=1000,gid=1000,iocharset=utf8,sec=ntlm, 0 0

使用以下命令查找 uid 和 gid

id

最后,让系统重新挂载 fstab 文件中的任何内容:

sudo mount -a

现在,所有网络共享都可在“网络”文件夹中的主目录中访问。它不像在 Windows 资源管理器中浏览网络那么酷,但实际上它要快得多 :-)

这不是对最初问题的真正回答,因为问题要求进行网络浏览,但这是我遇到的最佳可用替代方案。我将把这个答案标记为“已回答”,以关闭问题。但如果将来有人找到一种方法让所有工具都可以使用文件管理器的网络浏览功能,我会非常高兴。

相关内容