Redhat:非 root 用户需要将文件复制到 NFS 共享

Redhat:非 root 用户需要将文件复制到 NFS 共享

通常非 root 用户无法挂载目录。

运行 Redhat 有 6GB tar.gz (/dir/somefile.tar.gz) 需要移动到另一个机器上的 NFS 共享 (//somebox/somefolder/)

我们没有其他访问权限。

有任何想法吗?

答案1

mount命令在大多数 Linux 系统上只能以 root 身份执行,因为它有一个 root 集的 setuid。使用该命令有两种可能的解决方法mount,但它们要求 root 用户(或可以sudoroot 的人)进行一些更改。

  1. 让他们添加/etc/fstab所需共享的条目。选择noauto很重要。

    vi /etc/fstab
    <nfs ip or FQDN>:/      /mnt/       nfs rw,noauto,user,timeo=14,hard,intr 0 0
    

    然后让它们运行mount到所需的目录

    mount /mnt/
    
  2. 将用户添加到suders文件中,指定mount命令的使用。请注意,这不太安全,因为它们基本上可以在文件系统上安装任何内容。运行visudo并添加如下行:

    afhood    ALL=(ALL) /usr/bin/mount
    
  3. 执行某种形式的基于网络的复制到远程文件系统,例如scprcpftpsftp等。您将使用的特定命令完全取决于远程系统允许的内容以及您在系统上安装的内容。

答案2

我假设服务器配置为仅允许该特定客户端连接。否则,您可以使用具有 root 访问权限的客户端。 (在紧要关头,服务器如何识别该客户端也值得质疑。)

如果您必须使用 NFS 并且在客户端上没有 root 访问权限,那么我的第一个想法是找到用户空间 NFS 客户端或 NFS 浏览器。到目前为止我发现的唯一一个是JFtp,这是一个 Java GUI 客户端。然而,如果您是一名程序员并且愿意的话,另一种选择是自己开发;有一个图书馆叫libnfs1您可以从中构建。

我还没有尝试过其中任何一个,但希望这是一个开始。可能还有更多我没有注意到的。最后,请注意 NFS服务器可能需要您以 root 身份连接(从特权端口),在这种情况下您就不走运了。

...或者,我只是注意到你的“//somebox/somefolder/”命名法,这对于 NFS 来说非常不寻常,但对于 SMB(Samba / Windows 文件共享)来说是标准的,至少在 Linux 机器上是这样。如果是这样的话,那么您想要的工具就是smbclient

相关内容