我看过共享全新文件夹的教程,但是如果我想共享已经存在的文件夹(例如opt
或home
.对于一个全新的文件夹很直观,我只是创建这样的文件夹,例如,mdkir /shared_folder
然后在服务器和客户端中安装nfs,最后添加一行/etc/exports
并安装它。
我的问题与文件夹有关home
。我有 2 台机器,并且都有相同的用户,那么,这是否意味着如果我使用 NFS,客户端主文件夹就会消失?我找不到针对这种情况的正确教程,到目前为止我发现我应该再次创建一个文件夹,例如 ,/shared_folder/home
然后使用该文件夹进行共享。这是否意味着我需要符号链接?你能解释一下吗?这是我的第一次安装。此外,如果我计划添加更多用户,那么我还读到最好仅共享用户文件夹,那么这是否意味着现在我必须创建呢/shared_folder/home/user1
?每次创建新用户时,我都需要不断添加新的子文件夹,例如/shared_folder/home/user2
?我的分析正确吗?多谢
答案1
从 NFS 服务器导出文件夹并将其安装到客户端计算机上是两个相关但独立的事情。
在 NFS 服务器上,您告诉它要导出哪些文件夹(以及其他详细信息,例如允许哪些客户端安装它们,它们是只读还是读写等)。
在 NFS 客户端上,您告诉它要从服务器安装哪些导出,并且还在哪里安装它们。
这在哪里很重要。
它基本上与从本地磁盘在本地目录树中的特定位置(“挂载点”)挂载分区相同(例如 /dev/sda1 可能是您的 / 文件系统,而 /dev/sda2 挂载为 /home )。
您可以将本地磁盘分区或由服务器(或任何其他类型的文件系统)导出的目录安装在本地系统上的任何位置。
顺便说一句,运行的原因mdkir /shared_folder
是在本地文件系统中创建一个挂载点,以便挂载 NFS 共享 - 与 / 中需要有一个 /home 子目录用于挂载 /dev/sda2 相同,如果 /home 是一个单独的分区。两者都不能安装在不存在的目录上。挂载点只是您用作挂载文件系统的位置的目录。
就我个人而言,我不会将其/shared_folder
用作安装点 - 它太长且不方便,并且其中有一个下划线,因此需要使用 Shift 键。我会使用更短且不那么烦人的内容来输入,例如/shared
or /nfs
。
在我的家庭网络上,我有几台计算机将各种目录导出到本地网络,因此我将它们安装在 /nfs/hostname 下的客户端计算机上。例如,我的主文件服务器称为“ganesh”,因此我将 ganesh 的导出安装在我的工作站上的 下/nfs/ganesh/
,而我的 mythtv 盒子称为“indra”,因此我将来自 indra 的电视录制安装在 下/nfs/indra/
。我还使用各种符号链接作为 /nfs/ganesh 和 /nfs/indra 下特定目录的便捷快捷方式。
我的问题出在主文件夹上。我有 2 台机器,并且都有相同的用户,那么这是否意味着如果我使用 NFS,客户端主文件夹就会消失?
除非您将其安装在客户端上的用户主目录上 - 这是您的事情能如果你选择但不是你自己做的事情必须做。如果您不希望用户在客户端计算机上拥有本地主目录,或者您希望他们的所有文件都位于服务器上,那么您就需要这样做。
如果您正在安装,比如说,server:/home
在/shared/home
客户端上,那么这两个/home/username
AND/shared/home/username
都将在客户端上可用。
顺便说一句,如果您在两台或更多不同的计算机上有相同的用户,则最好他们在所有计算机上具有相同的 UID(例如,如果用户user1
在服务器上的 uid 为 1000,则最好user1
在客户端上为 uid 1000)。 NFS 确实具有 uid 和 gid 映射功能,但根据我的经验,最好通过让相关用户和组在两台计算机上具有相同的 UID 和 GID 来避免用户和组所有权问题。在大型环境(例如公司或学术机构)中,这通常是使用 nis 或 LDAP 或 Active Directory 或一些其他网络服务来获取帐户详细信息来实现的。在家庭或小型企业环境中,设置此值可能有点过分,并且在创建帐户和组时更容易注意 uid 和 gids。
这是否意味着我需要符号链接?
除非你想要一个。符号链接非常方便,因此您不必每次都键入完整路径,但这不是必需的。
例如,用户user1
可能有一个名为“nfs”或“服务器”的符号链接或指向/shared/home/user1
其主目录的任何内容,但这是可选的。他们只需在需要时指定完整的 /shared/home/user1/... 路径即可。
如果我计划添加更多用户,那么我还读到最好仅共享用户文件夹,所以这是否意味着现在我必须创建 /shared_folder/home/user1
有些人这样做,但只有当您有大量用户(数百或更多)并且您想要运行自动安装程序,以便用户目录仅在用户登录时安装(并在用户登录时卸载)时,它才真正有用。 out)或当用户文件被访问时(例如通过 cron 作业)。
对于家庭或小型企业网络来说,这带来的麻烦远远大于其价值。只需在服务器上导出 /home 并将其安装在客户端上 - 所有子目录都将可用。