リモートユーザーとsudoを使用してリモートからフォルダをコピーする方法は? [コピー]

リモートユーザーとsudoを使用してリモートからフォルダをコピーする方法は? [コピー]

リモートユーザーとsudoを使用してリモートからフォルダをコピーする方法は?次のいずれも権限のあるフォルダでは機能しません。権限が拒否されると失敗します。

scp -r [email protected]:/source/ /destination/
sudo scp -r [email protected]:/source/ /destination/

リモートでsshを実行して実行すると、sudo suこれらのファイルとフォルダを表示できます。scpSSHベースである限り、それが使用されたかどうかは私にとって重要ではありません。

scpおそらく、これはセキュリティ上の利点としてsudo権限を使用することによる制限です。ただし、SSHを介してsudo suすべてのフォルダを実行して表示できますが、リモートからダウンロードできないことは本当に面倒です(tarダウンロードを介してこの問題を解決できますが)。

ベストアンサー1

自分がNOPASSWDアクセス権(すべてのコマンドまたは「tar」または「cat」へのアクセス)を持っているか付与できると仮定すると、次のようになります。

# For a single file
ssh [email protected] 'sudo cat /source/SINGLE_FILE' > /destination/SINGLE_FILE

# for recursive copying, use tar or cpio
ssh [email protected] 'sudo tar -C /source/ -czf - .' | tar -C /destination/ -xzf -

リモート側でsudoを実行し、stdoutを書き込むプログラムを介してファイルをstdinを読み取るプログラムに転送する必要があります。

sudoパスワードを入力する必要がある場合は状況が悪くなりますが、rsyncサーバーとポート転送を使用すると可能です。

おすすめ記事