Debian:从本地服务器 scp 到远程服务器的权限/用户要求是什么

Debian:从本地服务器 scp 到远程服务器的权限/用户要求是什么

我有两个 LAN,路由器通过隧道与我的 Debian 服务器通过互联网进行通信。这样就很好了。我可以使用证书进行 SSH,这样就不需要密码就可以将本地服务器 1 用户 (Tom) 连接到远程服务器用户 (Harry)。我对设置远程服务器目录上的目录权限、所有者和组感到困惑,以便将文件从我的本地 LAN 服务器 scp 到远程服务器而不会出现权限被拒绝的情况。我可以通过说明本地 LAN 有 3 个服务器和一个 NAS 来进一步复杂化这个问题,另外我希望使用 Perl 和 crontab 自动执行此操作。尽管只是帮助澄清这一点的基本知识,但还是非常感谢。谢谢。

答案1

文件系统Permission denied错误与您的 SSH 连接无关。只有授予每个终端用户 ID 的权限才重要。请考虑:

$ whoami
tom
$ scp foo harry@remote:bar
  • 用户tom必须能够读取路径名foo

    • 您无需使用即可测试这一点scp——只需尝试读取文件即可foo
  • 用户harry必须能够bar在 上写入路径名remote

    • 您无需使用 -- 即可测试这一点,只需以 asscp登录并尝试写入文件(as )。remoteharrybarharry

如果上述任何一个测试失败,那么scp就会失败。

例如:

$ scp /etc/shadow harry@remote:bar
/etc/shadow: Permission denied

本地用户tom无法读取/etc/shadow

$ touch foo
$ scp foo harry@remote:/etc/shadow
scp: /etc/shadow: Permission denied

远程用户harry无法写入/etc/shadow

相关内容