如何在没有sudo权限的情况下从远程计算机挂载分区

我希望我的组中没有sudo权限的用户可以安装远程计算机上的分区。 想象一下,用户在多台计算机上拥有一个帐户,但是大量数据位于特定计算机的硬盘上。

有没有办法让他可以在当前的计算机上安装这个分区? 此外,不应给予用户任何sudo权利。

我可以在/etc/fstab中创建一个自动挂载远程分区的条目,以防特定用户登录到计算机吗?

最简单的方法是在“客户端”上使用NFS共享(在“服务器”计算机上)和自动挂载程序(autofs)。

我假设根据Dorian的第一条评论,NFS安装在服务器和客户端上。

比如,要共享的分区在/ mydata上,在服务器上的/ etc / exports文件中添加一个条目:

 /mydata *(rw,sync,no_subtree_check) 

(选项取决于您的要求)。 在调用sudo exportfs -a ,应该导出分区(使用showmount -e测试)。 每次重新启动服务器后都应该如此。

在每个客户端上,安装autofs:

 sudo apt-get install autofs 

编辑文件/etc/auto.master以从/ net的行中删除注释符号:

 # # Sample auto.master file # This is a 'master' automounter map and it has the following format: # mount-point [map-type[,format]:]map [options] # For details of the format look at auto.master(5). # #/misc /etc/auto.misc # # NOTE: mounts done from a hosts map will be mounted with the # "nosuid" and "nodev" options unless the "suid" and "dev" # options are explicitly given. # /net -hosts 

重新启动autofs服务( sudo service autofs restart )后,您应该能够通过以下方式访问导出的文件系统

 /net// 

例如,如果您的服务器名称是“myserver”并且导出的文件系统是“/ mydata”,则可以输入

 ls /net/myserver/mydata 

查看目录的内容。

与/ etc / fstab中的静态条目相比,有一些优点:

  • NFS共享仅在访问时安装,并在一段时间不活动后卸载。 这节省了大量的资源和网络带宽。
  • 如果在服务器上添加第二个共享(例如“/ myotherdata”),则不必在客户端上添加任何条目。 只需访问路径/net/myserver/myotherdata
  • 如果你添加另一个服务器与另一个共享(在“secondserver”上说“/ moredata”),路径将是/net/secondserver/moredata而不对客户端进行任何操作
  • 如果在服务器上安装并配置了autofs,则可以在每个客户端上使用相同的路径(/ net / …),即使在服务器本身也是如此。

如果您不想总是输入/ net / ….,只需在您的主目录中添加一个链接:

 ln -s /net/myserver/mydata . 

警告:

NFS通过UID / GID匹配用户/组。 因此,“相同”用户必须在所有计算机上具有相同的UID,这也适用于组(GID)。 否则,访问权限会被破坏/损坏。 如果您有集中的用户管理,则没有问题。