sandbox - は、制限付き環境内でプログラムを実行します
sandbox -s sandboxname [command]
sandbox [-n] [-l clearance] [command]
sandbox コマンドは、プログラムを制限付き環境内で実行するために使用できます。デフォルトでは、このコマンドはプロセス認可上限を低下させて制限付きシェルを起動します。
–s オプションを使用して sandboxname が指定された場合、コマンドは、指定されたサンドボックスに関連付けられたプロセス属性およびホームディレクトリで開始されます。このようなサンドボックスは、sandboxadm(8) コマンドを使用して作成されます。サンドボックスを開始することは特権のない操作ですが、呼び出し元のプロセスは、適切なユーザー ID と認可を持つ必要があります。概要については、sandboxing(7) を参照してください。
このセクションの残りの部分は、sandboxname が指定されないときに適用されます。sandbox コマンドは、機密ファイルが含まれていないユーザーのホームディレクトリのサブディレクトリで実行する必要があります。
制限付きシェルは、新しいセッション内で起動されます。デフォルトでは、現在の基本特権セットを低下させます。proc_info および proc_session のプロセス特権を削除して、ユーザーとして実行中のほかのプログラムへのアクセスを防ぎます。プログラムが現行ディレクトリまたは /usr ディレクトリのいずれにもない場合、プログラムの実行を防ぐために proc_exec 特権に関する拡張ポリシーを設定します。
–n オプションが指定された場合、ネットワークのあらゆる使用を防ぐために net_access 特権も削除します。
デフォルトでは、ユーザーのプロセス認可上限を ADMIN_LOW に低下させて、マルチレベル ZFS データセット内のファイルのようなラベル付けされたファイルへのアクセスを防ぎます。また、ユーザーは認可上限によって支配されている任意のラベルを指定できます。
sandbox を開始する前に、ユーザーは setlabel(1) コマンドを使用して、ホームディレクトリ内のファイルおよびディレクトリを更新し、サンドボックス内で実行中のプロセスにアクセスできないようにすることができます。
~alice:$ cd playground ~alice/playground:$ sandbox firefox使用例 2 プロセス資格の検査
~alice:$ cd playground ~alice/playground:$ sandbox -n ~alice/playground:$ ppriv $$ 103889: /usr/bin/bash --login flags = PRIV_XPOLICY Extended policies: {proc_exec}:/export/home/alice/playground {proc_exec}:/usr/* E: basic,!net_access,!proc_exec,!proc_info,!proc_session I: basic,!net_access,!proc_exec,!proc_info,!proc_session P: basic,!net_access,!proc_exec,!proc_info,!proc_session L: all ~alice/playground:$ plabel $$ 103889: ADMIN_LOW
属性についての詳細は、マニュアルページの attributes(7) を参照してください。
|
plabel(1), setlabel(1), privileges(7), sandboxing(7), sandboxadm(8)
The sandbox command was added in Solaris 11.4.0.