限界

限界

以下のスクリプトに深刻な問題があり、NOEXECとRESTRICTでは問題を解決できないことがわかります。

user ALL=(ALL) /usr/bin/vim /etc/httpd/confs/httpd.conf

しかし、私はこの2つのオプションについてまだ少し混乱しています。

限界

多数のプログラムがシェルエスケープ機能を提供するため、通常、シェルエスケープ機能を提供しないアセンブリのセットにユーザーを制限することは不可能です。

これがなぜ問題になるのですか?通常のユーザーが任意のコマンドを実行できるようにしてはいけないため、通常のユーザーをシェルエスケープを許可しないプログラムに制限するのはsudoeditのようです。これはsudoeditとどう違うのですか?

実行すると約束する

noexec機能は、SunOS、Solaris、* BSD、Linux、IRIX、Tru64 UNIX、MacOS X、HP-UX 11.x、およびAIX 5.3以降で動作することが知られています。

システムがnoexecをサポートできるかどうかわからない場合は、いつでもnoexecが有効になっているときにシェルエスケープが機能していることを確認できます。

NOEXECが正しく機能していることを確認するための良い方法はありますか?コマンドを実行するのが最も安全ですか?

マニュアルページ:http://www.sudo.ws/sudoers.man.html

ベストアンサー1

限界

「シェルエスケープを許可しないアセンブリでユーザーを制限することは通常は機能しません」と説明すると、表面的に単一のセキュリティ操作を実行しているように見えますが、実際にはユーザーが何でも実行できるようにするプログラムには一般的です. 。他のプログラム、通常はユーザーに単一のコマンドへのアクセスを許可すると、実際に必要なコマンドを実行できると仮定する必要があります。

一般的な例はテキストエディタです。ユーザーがエディタですべてのファイル(コマンドラインに提供されているファイルだけでなく)を開くことを許可することに加えて、広く使用されているエディタでは、ユーザーはシェル全体を起動できます。

sudoeditメカニズムは、特定のファイルのみを編集できるエディタを提供します(ユーザーに編集するファイルのコピーを提供し、特権ファイルを更新した後にのみユーザーが直接編集できるようにします)。 RESTRICT を使用してユーザーが特定のファイル (emacs など) を実行できるようにするには、特権ユーザーとして実行されている emacs エディターで、そのユーザーが実際にそのユーザーがアクセスできるすべてのファイルを編集し、そのユーザーとしてシェルを開始できます。あります。

実行すると約束する

プログラムがこのように起動すると、通常の動的ライブラリが置き換えられ、新しいシェルの作成が無効になります。動的実行可能ファイルlessの場合、less内部でシェルコマンドを実行しようとすると失敗します。特定のファイルの編集を許可しようとしている状況では、ユーザーがsudoeditを使用する方が安全でより優れている可能性があります(これにより、自分のエディタのカスタム設定にアクセスできるため)。

NOEXECがあなたのシステムで実行されているかどうかをチェックすることに関して、ターゲットプログラムが実際に動的にリンクされている場合、文書にリストされているすべてのオペレーティングシステムで実行されると仮定します。ただし、ドキュメントが示すように手動で確認することをお勧めします。

おすすめ記事