回答:
のポイントはsudoedit
、権限のないエディターを実行しているときに、ユーザーが他の方法では許可されていないファイルを編集できるようにすることです。これを実現するには、sudoedit
編集するファイルを一時的な場所にコピーし、要求元のユーザーが書き込みできるようにして、構成されたエディターで開きます。エディタが一時ディレクトリに無関係なファイル名を表示するのはそのためです。エディターが終了すると、sudoedit
実際に変更が行われたかどうかを確認し、必要に応じて変更された一時ファイルを元の場所にコピーします。
visudo
forを使用するなど、アプリケーション固有になる傾向があります/etc/sudoers
。
visudo
したと思いますsudoedit
。私はvisudo
確かにそれをしたことを知っていました。それを片付けてくれてありがとう!
これはマンページでうまく説明されていsudo
ます。-e
(sudoedit
と同等)の説明は次のとおりです。
-e
-e
(編集)オプションは、ユーザーが編集一つ以上のファイルに願い、代わりにコマンドを実行しているのは、そのことを示します。コマンドの代わりに、文字列 "sudoedit
"がセキュリティポリシーを調べるときに使用されます。ユーザーがポリシーによって承認されている場合、次の手順が実行されます。
- 一時的なコピーは、所有者を呼び出し元のユーザーに設定して編集するファイルから作成されます。
- ポリシーで指定されたエディターが実行され、一時ファイルが編集されます。
sudoers
ポリシーは使用していますSUDO_EDITOR
、VISUAL
とEDITOR
(そのために)環境変数を。どれ場合SUDO_EDITOR
、VISUAL
またはがEDITOR
設定されていない、エディタにリストされた最初のプログラムsudoers(5)
オプションが使用されています。- 変更されている場合、一時ファイルは元の場所にコピーされ、一時バージョンは削除されます。
指定したファイルが存在しない場合は作成されます。によって実行されるほとんどのコマンドとは異なり
sudo
、エディタは変更されていない呼び出し側ユーザーの環境で実行されることに注意してください。何らかの理由で、sudo
編集されたバージョンでファイルを更新できない場合、ユーザーに警告が表示され、編集されたコピーは一時ファイルに残ります。
特に、3番目のステップに注意してください。編集の最後にファイルが変更された場合のみ、元のファイルが変更されます。したがって、ファイルを監視するプログラムがある場合、これは(a)中間書き込みが取得されないようにするのに役立ち、(b)最後に変更を行わないことにした場合の不要なアクションを回避できます。