通过Samba或SSH在LAN中共享文件
我能够在两台Ubuntu机器和Windows机器之间共享文件,但我遇到了一些我无法解决的问题。
- 当我通过LAN Computer1到Computer2在两台Ubuntu机器之间共享文件时。 我在两台机器上都需要Samba吗? 如果否(相对于上层问题)那么在转移p2to的情况下
- 当我从Ubuntu访问另一台Ubuntu机器时,没有在Computer1上定义文件和目录权限,我看到Computer2下面
/
上的所有文件。 有没有办法阻止这种可见性? 如何设置我希望其他用户能够看到的文件夹或目录的权限? 如何设置共享文件夹或文件的自定义列表? - 我在访问其他Ubuntu机器samba用户或系统管理员用户时使用了哪些用户和密码? 它是否适用于两者。 我可以没有密码使用它吗?
- 如何在不使用GUI samba或使用终端的情况下共享文件。
-
为什么Computer2没有显示在Computer1的网络连接上?(没有使用连接到服务器选项)为什么我的linux系统没有在这?
-
在不知道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 – 需要最低配置