如何将文件复制到远程linux服务器中的共享帐户

如何将文件复制到远程linux服务器中的共享帐户,linux,copy,remote-server,account,Linux,Copy,Remote Server,Account,我们在服务器上有一个多用户共享帐户,每次我通过ssh在服务器上登录自己的帐户并使用sudo-u shared\u account-I登录该帐户时 现在我想将一些文件复制到共享帐户,我当前的解决方案是: 通过scp命令将文件复制到服务器中我自己的帐户 使用我自己的帐户登录到服务器 登录共享帐户 将我自己帐户中的文件复制到该共享帐户的文件夹中 是否有任何方法可以将文件直接从本地PC复制到服务器中共享帐户的文件夹中 服务器的操作系统是Linux,我的本地PC是Mac。您可以通过ssh和sudo发送存档

我们在服务器上有一个多用户共享帐户,每次我通过ssh在服务器上登录自己的帐户并使用
sudo-u shared\u account-I
登录该帐户时

现在我想将一些文件复制到共享帐户,我当前的解决方案是:

  • 通过
    scp
    命令将文件复制到服务器中我自己的帐户
  • 使用我自己的帐户登录到服务器
  • 登录共享帐户
  • 将我自己帐户中的文件复制到该共享帐户的文件夹中
  • 是否有任何方法可以将文件直接从本地PC复制到服务器中共享帐户的文件夹中


    服务器的操作系统是Linux,我的本地PC是Mac。

    您可以通过
    ssh
    sudo
    发送存档流

    tar czf - file1 file2 file3 | ssh remote_system sudo -u shared_account tar xvzf -
    
    您对此答案的评论表明,在运行
    sudo
    时必须输入密码。不幸的是,问题中没有提到这一点


    如果您可以作为共享用户运行打开TCP端口的程序,例如
    netcat
    nc
    ),则可以将其与
    tar
    (或
    cpio
    )结合使用共享用户的权限和环境直接传输文件。

    谢谢您的回答。事实上,我没有成功运行cmd,但找到了类似的方法:
    echo$password | ssh$remote\u server sudo-S-u shared\u account“cp/home/$my\u account/path/to/files/home/shared\u account/path/of/target/dir”
    。在本地pc上运行这个cmd,它可以在远程服务器上作为共享帐户sudo,在服务器上运行cp cmd,这样我就可以在本地运行cmd,将文件复制到远程服务器上共享帐户的home dir。这样,我就可以在Mac中编写shell脚本来覆盖当前解决方案的所有4个步骤,而无需真正登录到远程服务器。