sudo機能をbashシェルのターゲットディレクトリ/ファイルに拡張できますか?

sudo機能をbashシェルのターゲットディレクトリ/ファイルに拡張できますか?

ローカルネットワークには2つのUbuntuサーバー(12.04.5 LTSと16.04.1 LTS)があります。私は両方のサーバーの管理者であり、そのサーバーのスーパーユーザーになることができます。各サーバーがAとBであると仮定し、サーバーAにログインします。

AのファイルをBのディレクトリにコピーするには、そのファイルを配置するためにBのroot権限が必要です。どうすればいいですか?

私の試みは次のとおりですが、サーバーBに権限がないため、成功しませんでした。

sudo scp /foobar/foo/bar.txt user@serverB:/bar.txt
scp: /bar.txt: Permission denied

sudo権限は、宛先ディレクトリではなくソースディレクトリの権限にのみ影響します。

もちろん、ターゲットディレクトリの権限を適切に変更すると、権限なしエラーなしでファイルをコピーできます。しかし、ファイルをコピーするたびに権限を変更するのはやや面倒です。

さらに、Ubuntuのデフォルト設定では、ルートが両方のサーバーにログインすることはできません。

もし良い方法知っていれば教えてください。私はbashシェルを使います。

ベストアンサー1

通常のユーザー(rootではない)で元のシステムのファイルを読み取ることができる場合は、push scpの代わりにpull scpを使用することを検討してください。

serverB:~$ sudo scp user@serverA:/foobar/foo/bar.txt /bar.txt

ソースコンピュータからファイルを読み取れない場合は、上記の2つの手順を実行する必要があります。複数のコンピュータでsudoを動作させることはできません。

おすすめ記事