いつ「nano」の代わりに「rnano」を使用する必要がありますか?

いつ「nano」の代わりに「rnano」を使用する必要がありますか?

私はそれを愛しnano、定期的に使用します。関連アプリケーションはですrnano

rnanoマニュアルから:

DESCRIPTION
       rnano  runs  the  nano  editor in restricted mode.  This allows editing
       only the specified file or files, and doesn't allow the user access  to
       the filesystem nor to a command shell.

       In restricted mode, nano will:

       • not allow suspending;

       • not allow saving the current buffer under a different name;

       • not allow inserting another file or opening a new buffer;

       • not allow appending or prepending to any file;

       • not make backup files nor do spell checking.

いつ使うべきですかrnano

答え1

rnano私は意図したユースケースがnano -R特権シナリオまたは信頼できないキーボード入力で利用可能なエディタを提供することだと思います。たとえば、アカウントを使用して他の人に編集者を提供したい場合、その人は他のファイルにアクセスできません。同様に、sudo編集者のリスクへのアクセスを制限すると便利ですが、sudoeditこの場合に使用する必要があります。

制限モードバージョン1.3.3に追加されました、2004年6月発売。初期パッチ2004年2月からは特別な理由は提示されていません。

最近では、ユーザーがデフォルトのファイルシステムまたはコマンドシェルにアクセスすることを許可せずに1つ以上の特定のファイルのみを編集できる小さなテキストエディタが必要でした。ナノは使いやすいのでナノを選んだ。しかし、chrootに似たモードを持っていてもセキュリティが不十分なため、少しパッチを適用する必要がありました。

デビッド・ローレンス・ラムジー大幅に拡張されたパッチ2004年4月合併前。

他のエディタには、「制限」の定義が異なる制限モードがあります。Vim 5に制限モードを追加2002(元のパッチと同じように使用または呼び出される)は、外部シェルへのすべてのアクセスをブロックします-Zrvimrnano

答え2

このようにして、sudoers選択したユーザーグループが特定のプロファイルを編集できるようにすることができます。

Cmnd_alias EDITFILE = rnano /path/to/that/file
User_alias FILEEDITORS = user1, user2
User_alias FILEOWNER = otheruser
FILEEDITORS ALL=(FILEOWNER) EDITFILE

ファイルはからのみ書き込み可能である必要があるため、otheruserそのユーザーは正常に編集できません。これで次のようになります。

sudo -u otheruser rnano /path/to/that/file

ファイルを編集できますが、rnano他のファイルにアクセスしたりシェルを終了したりすることは禁止されているため、そのユーザーの権限で他の操作を実行することはできません。

答え3

これにより、人々にシェルアクセスを許可することなく選択したファイルを編集できます。

Steve秘書が従業員にさまざまな会社の電子メールエイリアスを割り当てることができる必要があるとします。しかし、Steveに会社のメールサーバーの完全なシェルアカウントを提供したくないでしょう。これは、スティーブが周りを見回して任意のコマンドを実行できるからです。ある日、Steveは退屈になり、サーバーでCEOのプライベートな会話を読むために使用できる悪用可能なコマンドを発見した可能性があり、Steveの使い捨てアカウントが一部のマルウェアによって破損し、サーバーにBitcoinの採掘機を配布するために使用されている可能性があります。人々が不要な特権を持つようになると、いろいろな不快なことが起こる可能性があります。

それで、あなたは何をしますか?メールサーバーにSteveのアカウントを作成しましたが、そのアカウントのみを許可し、rnano /etc/aliases他のものを許可しないように設定しました。ForceCommandinオプションを使用するsshd_configcommand=、inを使用してこれを実行できますauthorized_keys(この場合は独自のアカウントは必要ありません)、SSH以外のものを使用してログインする場合は、それに応じてログインシェルを設定できます。

答え4

他のアプリケーションの一部としてエディタウィンドウを提供するために使用できます。

簡単な例は、マージの競合を修正するか(CVSワークフローがこれに似ていると思います)、エラーフィードバックメッセージを送信する前に編集することです。

権限も必要なく、ファイル名を変更したくありません。

関連情報