2016-10-28 2 views
-1

私はsshを使ってリモートからアクセスする2つの異なるサーバを持っています。私は現在、crontabを使ってサーバAからサーバBにアーカイブを移動させるbashスクリプトを毎週作成しています。スクリプトはサーバAから実行されます。ある時点でサーバBにログインする必要があります。私はRSA鍵を設定していますが、うまく動作しています(Aからssh user @ Bを実行しました。右)。sshを使ったリモートルートログイン

問題は、ユーザーが書き込み権限を持っていないことです(ssh rootログインはBで無効になっています)。 rootのアクセス権を得るために私は普通のユーザー@Bとログインしてsuをタイプし、rootのパスワードを入力する必要があります。これはBから直接行うときに動作します。

私の質問は次のとおりです:RSA経由で正規ユーザー@ BとしてBにログインした後で、これを行うようにスクリプトをプログラムできますか(suと入力してrootパスワードを入力しますか? Bの目的地フォルダにあるファイルをscpに進めますか?

ありがとうございました

+0

このQは、StackOverflowで定義されているプログラミングに関するものではありません。それは、S.E.関連サイトhttp://superuser.com。あなたのQの下にある 'flag'リンクを使って、司会者にそれを移動するように依頼してください。 2つの異なるサイトに同じQを投稿しないでください。 http://stackoverflow.com/tour、http://stackoverflow.com/help/how-to-ask、http://stackoverflow.com/help/dont-ask、およびhttp://stackoverflow.comをご覧ください。/help/mcveここにQを投稿してください。ありがとう、幸運。 – shellter

+0

あなたは宛先フォルダのパーミッションを変更して、そこにファイルを置くことができますか? – Robert

答えて

0

はい、あなたはsudoで実行できます。

「man 5 sudoers」に記載されているようにvisudoを使用して設定すると、特権のないユーザーが特定のコマンドをパスワードなしでrootとして実行できるようになります。

は、その後、あなたが「SCP」と先へのファイルの上に「sshのホスト名はsudo sometask」シナリオのためにそう

、最初のコピーを実行することができ、その後、sudoを使用して、ターゲットホスト上の高架priviledgesでスクリプトを実行します。

tar cf - directory | ssh hostB sudo tar -C directory xf -# 
ssh hostB sudo tar -C directory xf -

あなたがローカルでタールを実行されて何ができるか行くそれを1で両方を行いたい場合は、パイプそれはそうhostBでのルートとして実行されているタールは、root権限でそれを解凍することができるようになります

(未テスト)

+0

だから基本的に私はroot権限を持たずにscpを実行できるようにすることができます。 – heronpilot

+0

いいえ、scpはリモートマシン上のユーザーとして実行されます。特権を昇格して直接ファイルを作成する場合は、「tar」ソリューションを使用して、「sudo」を追加してソリューションに追加します。 – neuhaus

関連する問題