通过Samba或SSH在LAN中共享文件

我能够在两台Ubuntu机器和Windows机器之间共享文件,但我遇到了一些我无法解决的问题。

  1. 当我通过LAN Computer1Computer2在两台Ubuntu机器之间共享文件时。 我在两台机器上都需要Samba吗? 如果否(相对于上层问题)那么在转移p2to的情况下
  2. 当我从Ubuntu访问另一台Ubuntu机器时,没有在Computer1上定义文件和目录权限,我看到Computer2下面/上的所有文件。 有没有办法阻止这种可见性? 如何设置我希望其他用户能够看到的文件夹或目录的权限? 如何设置共享文件夹或文件的自定义列表?
  3. 我在访问其他Ubuntu机器samba用户或系统管理员用户时使用了哪些用户和密码? 它是否适用于两者。 我可以没有密码使用它吗?
  4. 如何在不使用GUI samba或使用终端的情况下共享文件。
  5. 为什么Computer2没有显示在Computer1的网络连接上?(没有使用连接到服务器选项)为什么我的linux系统没有在这? Nautilus的屏幕截图

  6. 在不知道LAN上的名称或IP的情况下查找其他系统?

帮我解决这个问题

首先:如果你想共享文件,有几种不同的协议:Samba(SMB),NFS,FTP,SSH / sFTP / SCP。 如果涉及Windows计算机,Samba是最简单的,但您也可以在两台Ubuntu(甚至Mac OS)计算机之间使用它。 SSH对于Ubuntu来说是一件好事,因为它是一个非常强大的工具 – 例如,通过SSH运行rsync是一种保持两个目录同步的命令方法。 但是我选择SMB是因为你提到了Windows,并且可能设置一个协议/服务器就足够了。

关于其他协议的进一步研究只有三个重要提示:

  • 考虑加密 – 协议是否必须加密或您是否要信任您的LAN? (FTP未加密,SSH / sFTP / SCP是)
  • 需要传输大文件吗? (与千兆网络中的SMB相比,SCP真的很慢!如果您感兴趣,可以使用Google基准测试。)
  • 是否有必要保留传输文件的文件权限?

现在你的问题:

1.当我通过LAN在两台Ubuntu机器之间共享文件时,我是否需要在两台机器上使用Samba?

不,不是Samba服务器。 总会有服务器和客户端。 您可以从客户端访问服务器上的共享文件夹 – 而不是相反。 换句话说:复制进度条将始终在客户端上,永远不在服务器上。 但是如果你想要的话,有两台Ubuntu机器,它们可以同时是客户端和服务器。 默认情况下,客户端随附Ubuntu,当您第一次与Nautilus共享文件夹时,服务器会自动安装。

2.如果没有在计算机1上定义权限,我可以在计算机2下看到所有文件。他们是否可以阻止这种可见性?

对于SMB / Samba来说,情况并非如此。 有一些共享文件夹,只有这些文件夹对客户端可见。 如果路径/是共享的,请检查文件夹/var/lib/samba/usershares/和文件/etc/samba/smb.conf 。 您可能正在使用SSH连接,而不是使用SMB连接。 那么你是对的,通常一切都是可见的,你必须正确设置文件和目录权限。 您可以在此处找到有关此内容的更多详细信息: 简单易用的监狱用户方式

3.通过Samba访问其他Ubuntu机器时,我必须使用哪个用户和密码?

通常很简单:只使用其他机器的任何用户和密码。 仅在非常特殊的情况下,用户的正常密码与其Samba密码不同。 您可以使用命令smbpasswd单独更改Samba密码,但您应该有充分的理由使用两个不同的密码。

您可以允许没有密码的共享。 关于这一点有很多话要说,但是这个Nautilus截图可能有助于开始:

在此处输入图像描述

4.如何在没有GUI的情况下使用终端共享文件?

最常见的用例可能是SSH / SCP。 只需在客户端的终端中键入以下内容,即将客户端上的/path/to/file1复制/path/to/file1服务器上的/path/to/file2

 scp /path/to/file1 server:/path/to/file2 

server可以是IP地址或域名。 或者rsync其他答案中已经提到的另一种方法:

 rsync /path/to/file1 server:/path/to/file2 

使用Samba,您可能会使用smbmount (默认情况下不随Samba一起提供),以便在客户端上安装网络共享。 然后你可以正常使用它。 安装Samba共享的方法有很多种。 如果您使用的是Gnome, gvfs-mount可能是最简单的方法:

 gvfs-mount smb://server/nameOfsharedFolder cd ~/.gvfs/* 

5.为什么服务器没有出现在客户端的Nautilus / Network中?

据我所知,它第一次没有出现在那里。 连接一次后,你会在那里找到它。 第一次,您必须单击“Windows网络”,然后单击“工作组”,然后您将看到您的服务器 – 希望。 至少这是我测试的结果。

6.如何在不知道LAN中其他系统的名称或IP的情况下找到其他系统?

您可以在终端中使用nmap ,例如:

 nmap 192.168.0.* 

如果你的局域网是192.168.0.0。 这将打印LAN中的所有网络客户端(可以发现)。 如果其他计算机没有显示在网络下,有时这可能会有所帮助。

问题4:要在两个ubuntu-pc之间复制文件,可以使用scp或rsync。 或者您可以使用sshfs从p2上的p1挂载目录。 这可以使用终端完成

问题2:您如何访问其他Ubuntu计算机? 如果您不希望其他人阅读您的文件,您可以使用:

 chmod -R o-rwX,g-rwX my-directory 

但当然根本用法可以读取它们。

最简单的共享应用程序是Giver – 需要最低配置