【发布时间】:2021-09-02 19:50:26
【问题描述】:
我想将我的服务器日志 (/var/log/httpd/) 备份到我家的本地磁盘。问题是日志目录由专门无法通过 SSH 连接到机器的帐户拥有。
我可以使用我的常规帐户通过 SSH 连接到远程计算机,然后我可以 sudo 访问这些日志文件。有没有一种方法可以让我在我的家用计算机上运行 RSYNC,但让它以 root 身份运行,以便它具有访问这些日志文件并将它们发回给我所需的权限?
一个典型的例子(在我家的本地机器上运行):
rsync -avz [user]@[server]:/var/log/httpd/* ./logs
显然,如果 [user] 的帐户有权访问 /var/log/httpd/,这将起作用,但它没有(而且我宁愿不授予该帐户权限)。
所以我想知道是否可以在 RSYNC 请求的中间注入一些其他命令,即使登录是通过 [user] 进行的,最终也会强制远程用户以 root 身份操作?
我还应该注意,我不想倒退。换句话说,我意识到我可以登录远程机器,切换到 root,然后以另一种方式运行 RSYNC。问题是出于各种原因,我不想将家用机器配置为接受远程登录。所以我只想把文件拉下来,而不是把它们发上来,可以这么说。
提前致谢!
【问题讨论】:
-
您不能将日志文件复制到您有权访问和拥有的目录中吗?
-
我绝对可以做到,是的。我只是希望能够完全从我的本地端自动化这个过程,而不必影响远程服务器。如果绝对不可能,那么是的,在远程服务器上设置一个脚本,将它们移动到我拥有的目录中肯定会解决这个问题。由于 RSYNC 将保留文件,一旦它们从该临时位置删除,我仍然会拥有它们。我只是想也许有一种方法可以实现目标,而无需创建中间步骤。