scp中のユーザーの変更


16

Linuxマシン間でファイルをコピーする必要があります。ログインに使用するユーザー(myuser)がファイルにアクセスできるユーザーとは異なる問題。

sshマシンにだけ移動する場合、を使用してユーザーを切り替えるsudo su someuserことができますが、どうにかして実行できscpますか?

WinSCPを使用している間に、SCP / Shellを構成することでそれを行うことができたので、純粋なシェルを介して同様の方法を実行する必要があると考えています。


よくわかりません。ファイルを操作するユーザーとしてログインしないのはなぜですか?
rahmu

他のユーザーを使用してログインすることは不可能だからです。
Tarlog

次のようなものに接続しsshて実行scpしてみてくださいssh myuser@host "sudo scp ..."
rahmu

たぶん、ここでの答えはそのような状況で働くことができますか?unix.stackexchange.com/questions/43094/…@Tarlogこれは、リモートマシン自体でsomeuser @ remoteをsshできることを前提としています
Bernhard

回答:


9

sshすることができるユーザーがターゲットユーザーにsudo suするためのパスワードを必要としないと仮定すると、これを試すことができます:

dd if=myfile | ssh some.host "sudo -u targetuser dd of=myfile" 

...心、まだtargetuserSSHでscp / sftp / rsyncのみを許可するように設定し、認証にRSAキーペアを使用することはあまり良い選択肢ではないことに納得していません。


1
またはtar -cvf - * | ssh user@host "sudo -u targetuser tar -C /targetdir -xf -"多数のファイルの場合
マット

また、真の、そして私たちがするかどうかを議論することができたと-z-j...いずれかの側に接続速度とコンピュータのハードウェアに応じて便利です
Shadur

3

他のユーザーの資格情報(someuser)がわかっている場合は、scp通話でそれを指定できます。

man scpページから:

ファイル名には、そのホストとの間でファイルをコピーすることを示すユーザーとホストの指定を含めることができます。ローカルファイル名は、絶対パス名または相対パス名を使用して明示的に作成して、「:」を含むファイル名をホスト指定子として扱うscpを回避できます。2つのリモートホスト間のコピーも許可されます。

使用される構文は次のとおりです。

[[user@]host:]/path/to/file

userを使用してlocalhost /home/foo/barからファイルをコピーしたいhost1場合someuserは、次のコマンドを使用します。

scp someuser@host1:/home/foo/bar .

認証(パスワード、キーなど)を求められます。


1
他のユーザーとしてログインすることはできません。
Tarlog

次に、RSAキーを使用してscp / rsyncのみのログインを確立します。
シャドゥール

1
あらゆる種類のログインを使用して他のユーザーを使用することはできません。それ以外は、すでにssh / scpにRSAキーを使用しています。
Tarlog

1

おそらく可能ですが、それについては非常に厄介な方法だと思います。

私の最初の提案は、そのユーザーとしてログインすることです。そのユーザーのパスワードを持っていなくても、rahmuが示すように、独自の公開sshキーをそれらのauthorized_keysに追加し、そのキーを使用してscpできます。

それが不可能な場合、私の2番目の提案は、sshでログインし、ユーザーにsudoして、コピーしたいファイルのtarfileを作成し、自分のユーザーが読める場所に置くことです。次に、そのtarfileをscpダウンします。


他のユーザーにログインすることはできません。うん、私は自分で2番目の提案を考え出した。簡単な方法を探しています:)
Tarlog

その場合、gcbによって投稿されたリンクが役立つはずです。少なくともこれを複数回行う場合は。または、もちろん、ファイルへのアクセス権を変更して、独自のユーザーにファイルへのアクセスを許可することもできます。
ジェニーD

さて、私は異なるユーザーが使用するスクリプト(もちろん複数回使用される予定です)を作成しようとしています。したがって、私にアクセスを許可しても実際には役に立ちません。「sudo su otheruser」ができる人は誰でもスクリプトを実行できるはずです。
タルログ

わかった。まずはgcbからのリンクから始めます。スクリプトに問題がある場合は、それを投稿して、クラウドソーシングができるかどうかを確認します。
ジェニーD


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.