如何在没有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)。 否则,访问权限会被破坏/损坏。 如果您有集中的用户管理,则没有问题。