私はそれを愛し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(元のパッチと同じように使用または呼び出される)は、外部シェルへのすべてのアクセスをブロックします-Z
。rvim
rnano
答え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
他のものを許可しないように設定しました。ForceCommand
inオプションを使用するsshd_config
かcommand=
、inを使用してこれを実行できますauthorized_keys
(この場合は独自のアカウントは必要ありません)、SSH以外のものを使用してログインする場合は、それに応じてログインシェルを設定できます。
答え4
他のアプリケーションの一部としてエディタウィンドウを提供するために使用できます。
簡単な例は、マージの競合を修正するか(CVSワークフローがこれに似ていると思います)、エラーフィードバックメッセージを送信する前に編集することです。
権限も必要なく、ファイル名を変更したくありません。