カーネルのセキュリティー・テーブル

権限に含まれる情報には、ロール、特権コマンドがあり、特権デバイス・データベースは、 データがカーネルのセキュリティー・テーブル (KST) として指定されたカーネルの領域にロードされるまで、 セキュリティーの考慮事項の対象としては使用されません。 拡張 RBAC モードでは、権限および特権検査がカーネルで行われます。 したがって、カーネルでデータベースを使用するために、データベースをカーネルに送信する必要があります。

KST は以下のサブテーブルで構成されています。
  • Kernel Authorization Table (KAT)
  • Kernel Role Table (KRT)
  • Kernel Command Table (KCT)
  • Kernel Device Table (KDT)

すべてのテーブルまたは選択テーブルは、 setkst コマンドを使用してユーザー・スペースからカーネルに送信できます。 KRT および KCT は KAT に従属するもので、KAT が更新のために選択されると、KRT および KCT もテーブルを同期させるために更新して検査されます。 KST に更新を追加する推奨される方法は、ユーザー・レベルで ( mkauthchauthなどのコマンドを使用して) 必要なすべてのデータベースを作成または変更することです。 mkroleおよび setsecattr) を使用してから、 setkst コマンドを使用してテーブルをカーネルに送信します。 テーブルがカーネルにロードされると、 lskst コマンドを使用して、各テーブルに含まれている情報を表示することができます。

KST に収められたテーブルは完全なテーブルとして、常に送信されます。 言い換えれば、KST に関しては、個別エントリーの変更は許可されなくて、テーブル全体を置き換える必要があります。 setkst コマンドは、 テーブルをカーネルへ送信する前にテーブル自体とテーブル間の関係を検証します。 setkst コマンドは、ブート・プロセスの早い段階でデータベースが KST に送信されるように、 inittab ファイルにも配置されます。

ある理由のためにテーブルが作成されないか、またはカーネルへロードできなくて、 テーブルが事前にロードされなかった場合、システムは権限またはロールがないかのように作動します。 このシナリオでは不一致が検出されると、 コマンド、API、および権限とロール検査のためのシステム・コールは「障害」を返します。 この状態でのシステム操作は、権限を実施するコマンドでユーザーがコード・セクションをアクセスできないこと以外は、 レガシー RBAC モードと非常に類似しています。