通过 Samba 或 SSH 在局域网内共享文件

通过 Samba 或 SSH 在局域网内共享文件

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

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

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

帮助我度过难关

答案1

首先:如果您想共享文件,有几种不同的协议可供选择:Samba (SMB)、NFS、FTP、SSH/sFTP/SCP。如果使用 Windows 计算机,Samba 是最简单的,但您也可以在两台 Ubuntu(甚至 Mac OS)机器之间使用它。SSH 对 Ubuntu 来说是一件好事,因为它是一个非常强大的工具 - 例如,rsync通过 SSH 运行是一种保持两个目录同步的命令方法。但我会选择 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/和文件。您可能正在使用 SSH 而不是 SMB 进行连接。那么您是对的,通常所有内容都是可见的,您必须正确设置文件和目录权限。您可以在此处找到有关此内容的更多详细信息:/etc/samba/smb.conf/简单易行的监禁用户的方法

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

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

您可以允许无密码共享。关于这一点有很多话要说,但这个 Nautilus 屏幕截图可能对入门有帮助:

在此处输入图片描述

4. 如何使用终端共享无 GUI 的文件?

那么最常见的用例可能是 SSH/SCP。只需在客户端终端中输入以下内容即可将/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/网络中?

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

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

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

nmap 192.168.0.*

如果 192.168.0.0 是您的 LAN。这将打印出您的 LAN 中的所有网络客户端(可以发现的)。有时这可能会有所帮助,如果其他机器没有出现在网络

答案2

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

问题 2:如何访问其他 Ubuntu 机器?如果您不想让其他人读取您的文件,您可以使用以下方法:

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

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

答案3

最简单的分享应用程序是赠予者- 需要最低配置

相关内容