回答:
この場合、でファイルに書き込みます:w /tmp/tmpfile。次に、外に出て、/tmp/tmpfilesudo権限で古いファイルに移動します。
vi
/tmpディレクトリを監視している可能性がある他のユーザーにファイルの内容が公開されます。(2)システムに本当に悪意のあるユーザーがいる場合、/tmp/tmpfileそれを(からvi)作成したときと、編集していたシステム構成ファイルにコピーしたときに、ユーザーが入れ替わることがあります。一時ファイルを、自分だけがアクセスできるディレクトリに置く方が安全です。
SOから:
:w !sudo tee %
私は実際、この方法を使用してより頻繁にそれを実行していることに気づきました:
:%!sudo tee %
私は何をするか知っているので、もう少し直感的だと思います:%!が、私は内臓を理解していません:w !。また、それは間の非常に重要なスペース欠場するのは簡単だwと!。
viコマンドが複数の文字になる可能性があるため、理論的には「wfoo」コマンドが存在する可能性があるため、「」というファイルに書き込む場合fooは「:w foo」と言う必要があります。つまり、「:w」の後にスペースが必要です。「:w !」に関する限り、「」が何であるか知っていますよ:!ね?「:!date」は「date」コマンドを実行します。したがって、「:w !xyz」はバッファを書き込みますが、ファイルではなくコマンドに書き込みます。
%ですか?
% 難しいかもしれません。)(3)わかりました、少しお手伝いします。 tee複数の場所に情報を書き込むことができるプログラムです。たとえばdate | tee cody、現在の日付と時刻をcody …(続き)というファイルに書き込みます
date | tee cody > bugsteinは、現在の日付と時刻をと呼ばれるファイルとcodyと呼ばれるファイルに書き込みますbugstein。—分かりsudoますか?別のユーザー(通常はroot)の特権でコマンドを実行できます。たとえば、にls /rootアクセスできないため、通常はが失敗し /rootます。しかし、sudo ls /root動作します。— Unixが機能する方法の不幸な副作用は、にsudo ls /root > /root/codyアクセス/rootできないため、に書き込めないために失敗することです /root/cody。…(続き)