我有一个(* nix)服务器,其中某些文件夹的访问权限仅限于管理员帐户。为了访问其中一些文件夹,我们使用pbrun命令告诉一些“守护进程”为我们访问它(我想?)。
我需要将一个安全目录中的整个文件夹(我打开的目录之一)复制到我的Windows计算机上(不是服务器,只是常规PC)。
我想我需要使用SFTP连接到服务器并获取文件,但由于我无权访问我帐户中的文件,因此无法使用我的凭据进行SFTP。此外,我没有密码到我正在使用的帐户,所以我不能只是SFTP直接使用该帐户。并且pbrun不是FTP命令,因此我不能将其添加到FTP ...
基本上,我的问题是如何才能在我的计算机上获取该目录,当它位于整个pbrun障碍之间时。
答案 0 :(得分:2)
pbrun模式允许您获得通常由组ID标识的提升访问权限以及用户ID,通常是应用程序ID。一旦你拥有了这些特权,就可以做很多事情。
基于你上一次对问题的陈述,我认为你可以正常复制到同一服务器上的临时位置并更改所有权/权限[chown / chmod]以允许正常使用文件/目录标识。
完成工作后,根据您选择的内容,删除文件/撤消权限。
另一方面,如果你想探索sftp和ftp,信息如下:
sftp要求您在执行ftp之前设置ssh密钥。所以我认为有两种方法可以解决这些问题:
1)使用普通ftp,您可以在连接目标服务器时指定用户名。这将是最简单的解决方案。 缺点:未加密的文件传输
2)您可以在Windows服务器上设置ssh密钥并允许应用程序ID进行登录。
你应该关注的另一件事是Windows机器上的ftp服务本身,如果它存在与否。
答案 1 :(得分:1)
基本上,您正尝试执行以下操作:
tar cf - file1 file2 | / bin / tar -xf - -C / some / path / directory
您只需要在远程系统上完成提取,并在网络通道上加密内容。 PowerBroker可用作移动数据的传输通道。默认情况下,所有PowerBroker网络流量都已加密。您还需要一个允许该命令的策略。请尝试以下方法:
tar cf - file1 file2 | pbrun -h <target_host>
-u <target_user>
pbcp
您需要一个有效的政策:
if ( user in {"cire", "wax"}
&& command=="pbcp"
&& requestuser in {"oracle", "root", "other", "allowed", "users" }) {
runcommand = "/bin/tar";
runargv = { "/bin/tar", "-xf", "-", "-C", "/some/path/directory" };
SetRunEnv(requestuser);
accept;
}
答案 2 :(得分:0)
我的一位同事向我展示了解决pbrun / sftp问题的巧妙方法。我可以简单地创建一个临时目录,其中我和守护进程都可以访问,然后将我想要传输的文件复制到临时目录。然后,我可以使用我的正常凭据将SFTP文件存入我的PC。它是hackish(你最终需要2份文件来完成这项工作),但它确实有效。