特定のユーザーに対して特定のシステムコールを無効にする方法は?

特定のユーザーに対して特定のシステムコールを無効にする方法は?

私はキーボードなどのWebアプリケーションを作成していますが、各実行ジョブに対して私のアプリケーションはディレクトリ(/home/radeks/voidptr/private/chroot-root)をにコピーします/tmp/voidptr/[random-id]/chroot-root。このchrootディレクトリには、Webアプリケーションユーザーが入力したコードをコンパイルして実行するユーザーがあります。問題は、ユーザーがコンピュータをシャットダウンしたり、ソケットなどを使用したくないことです。

監督者を作成する必要がありますか?それとも、各ユーザーに対してこれらの権限を簡単に設定できますか?

答え1

Chrootはファイルシステムへのアクセスのみを制限します。 root権限がある場合、chrootはセキュリティ制限ではなく不便です。一般ユーザーはソケットを使用できますが、システムをシャットダウンすることはできません。

機能、AppArmor、SELinuxなど、ユーザーが実行できる操作を制限する方法はたくさんありますが、最も簡単な方法はWebアプリユーザーを仮想マシンに制限することです。ネットワーク接続、リソース使用量などを簡単に制限できます。あなたのユースケースには、軽量のLinux-on-Linux仮想マシン技術が最善のようです。オープンVZユーザーモードLinuxまたは仮想サーバー

関連情報