vimはrootでリモートファイルを編集できますか?

vimはrootでリモートファイルを編集できますか?

見つけました。この問題vimを使用してリモートファイルを編集する方法について説明します。

vim scp://user@myserver[:port]//path/to/file.txt

sudoリモートホストからルート(パス)でこれを実行できますか?

リモートホストにroot権限でファイルを作成し、上記の内容で編集してみました。 Vimはコンテンツを表示、編集、保存できますが、リモートホストでは何も変更されません。 (おそらくvimが一時ファイルを保存してから再保存するためにscpに提供するためですか?)

私のユーザーが保存したファイルでこれを行うと、期待どおりに機能します。

私のSSHは認証にキーを使用し、リモートサーバーにはsudoアクセス用のNOPASSWDがあります。

この問題似ていますが投票の唯一の答えは人形を使用しますが、これは確かに私が使用したいものではありません。


編集:以下の@drewbennのコメントに応じて、完全な編集プロセスは次のとおりです。

vim scp://nagios//tmp/notouch

/tmp/notouchルートが所有するファイルはどこにありますか? vimがすばやく表示されることがわかります。

:!scp -q 'nagios:/tmp/notouch' '/tmp/vaHhwTl/0'

これにより自動的に消え、テキストを含む空白の黒い画面が作成されます。

"/tmp/vaHhwTl/0" 1L, 12C
Press ENTER or type command to continue

ファイルを編集するにはEnterを押します。

保存すると、起動したのと同じscpコマンドが表示され、すばやく消えます(時間がかかりませんが、scpファイルと/tmp/...ファイルは間違いなくそこにあります)。

ベストアンサー1

vimリモートコマンドが実行されていないので不可能だと言いたいです。scpファイルをコピーしてローカルで編集し、完了scpしたら返します。で述べたようにこの問題 sudoViascpは不可能です。目的を達成するために権限を変更するか、リモートシステムにSSHで接続することをお勧めします。

おすすめ記事