見つけました。この問題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
したら返します。で述べたようにこの問題 sudo
Viascp
は不可能です。目的を達成するために権限を変更するか、リモートシステムにSSHで接続することをお勧めします。