この章では、Trusted Solaris 環境でのファイルとディレクトリに対する基本的なセキュリティ管理について説明します。この章で扱う内容は、次のとおりです。
ファイルやディレクトリを使用する作業では、ファイルマネージャが主なツールとなります。ファイルマネージャは、必須アクセス制御に対応するために、Trusted Solaris 環境向けに多少変更されています。この項では、Trusted Solaris 環境のファイルとフォルダに対する、基本的なアクセス権とアクセス制御リスト (ACL) に焦点を絞って説明します。その他のファイルマネージャの詳細については、標準の Solaris のマニュアルを参照してください。
次の図は、ファイルマネージャのメインウィンドウで「属性 (Properties)」ダイアログボックスを表示する 2 通りの方法を示しています。1 つは、対象ファイルにポインタを置き、マウスの右ボタンを押して、ファイルマネージャのポップアップメニューから「属性 (Properties)」を選択する方法です。もう 1 つは、ファイルを選択してから、「選択 (Selected)」メニューの「属性 (Properties)」を選択する方法です。
どちらの方法を使用しても、「属性 (Properties)」ダイアログボックスは表示されます。「属性 (Properties)」ダイアログボックスでは、次の 3 種類のプロパティを表示できます。
アクセス権 - 「アクセス権 (Permissions)」トグルと「アクセスリストを隠す (Hide Access List)」を選択して表示する (次の「アクセス権モード (Permissions mode)」ダイアログボックスを参照)。
ACL - 「アクセス権 (Permissions)」トグルと「アクセス制御リストを表示 (Show Access Control List)」を選択して表示する (次の「ACL モード (ACLs mode)」ダイアログボックスを参照)。
基本情報 - 「インフォメーション (Information)」トグルを選択して表示する (次の「情報モード(Information mode)」ダイアログボックスを参照)。
「基本のアクセス権」という言葉は、次の 3 種類のアクセスに関するファイルやフォルダ (ディレクトリ) の保護を記述した、従来の UNIX の概念からきています。
「読み取り」権 - ユーザーに、ファイルの内容、またはフォルダ内のファイルのリストの読み取りを許可する
「書き込み」権 - ユーザーに、ファイルの変更、またはフォルダ内のファイルの追加、削除を許可する
「実行」権 - ユーザーに、実行可能ファイルの実行、またはフォルダ内のファイルの読み取り、検索を許可する
フォルダへのアクセスが制限されている場合は、ファイルマネージャに、フォルダがアクセス不可または読み取り専用であることを示す特別なアイコンが表示されます (次の図を参照)。
アクセス権は、次の 3 つのユーザー分類に従って設定されます。
「所有者」 - ファイルまたはフォルダを作成したユーザー、あるいは chown(1) によって所有権を与えられたユーザー。通常は、最大のアクセス権を持つ
「グループ」 - 所有者が属するユーザーグループ
「その他」 - 所有者でもなく、所有者のグループにも属さないすべてのユーザー
「アクセス制御リスト (ACL)」を使用すると、特定のユーザーやグループに対し、個人的なアクセス権 (「ACL エントリ」) を与えることができます。たとえば、自分の上司に書き込み権を与えたいという場合は、その人に書き込み権を指定した ACL エントリを作成します。
ACL のエントリは、一般に、アクセス ACL エントリとデフォルト ACL エントリという 2 種類のエントリに分類することができます。 アクセス ACL エントリでは、だれが特定のファイルまたはディレクトリにアクセスできるかを定義します。デフォルト ACL エントリでは、指定したフォルダを持つ新たに作られたファイルやフォルダに適用されるアクセス権を定義します。
システムの定義により、どのアクセス制御リストにも「マスク」と呼ばれる特別なエントリ (削除不可) が用意されています。マスクを使用すると、ファイルやフォルダに対するアクセス権をすべてのグループや所有者以外のユーザーに最大限に許可することができます (ただし、マスクを使用しても、「基本のアクセス権」の分類で「その他」の分類に属するユーザーには適用されません)。マスクの上手な利用方法は、自分だけがファイルに対する単独の書き込み権を持ちたいというときに、自分以外のすべてのユーザーから書き込み権を削除するといった方法です。
次の表は、ACL エントリをタイプ別にまとめたものです。
表 5-1 ACL タイプと適用対象
エントリタイプ |
適用対象 |
ユーザー分類 |
---|---|---|
ファイルまたはフォルダ |
所有者にもその他にも属さないすべてのユーザー |
|
ファイルまたはフォルダ |
指定ユーザー |
|
ファイルまたはフォルダ |
指定グループ |
|
選択したフォルダに作成されたファイル |
指定ユーザー |
|
選択したフォルダに作成されたファイル |
指定グループ |
|
選択したフォルダに作成されたファイル |
フォルダの所有者 |
|
選択したフォルダに作成されたファイル |
所有者のグループ |
|
選択したフォルダに作成されたファイル |
所有者にも所有者のグループにも属さないユーザー |
|
選択したフォルダに作成されたファイル |
所有者にもその他にも属さないすべてのユーザー |
デフォルトの ACL エントリを作成するときは、必ず次のエントリが必要となります。
デフォルトの所有ユーザー
デフォルトの所有グループ
デフォルトのその他ユーザー
デフォルトのマスク
ファイルマネージャは、最適なアクセス権の設定を推測し、デフォルトのエントリを自動的に作成します。これらのデフォルトの設定を使用したくない場合は、自由に変更できます。
ファイルやフォルダの基本のアクセス権と ACL エントリの変更は、すべてファイルマネージャの「属性 (Properties)」ダイアログボックスで行います。
ファイルマネージャを表示します。
属性を表示するファイルまたはフォルダにポインタを置き、マウスの右ボタンを押します (次の図を参照)。
「属性 (Properties)」を選択します。
選択したファイルまたはフォルダの「属性 (Properties)」ダイアログボックスが表示されます。このダイアログボックスでは、次の操作を行えます。
ファイルやフォルダの基本情報を表示する
ファイルやフォルダの基本のアクセス権を表示または変更する
ファイルやフォルダの ACL エントリを表示または変更する
表示または変更したいファイルやフォルダをリストから選択する。
ファイルやフォルダの基本情報には、所有者、グループ、サイズ (バイト単位)、最終アクセス日付、および最終変更日付が表示されます。
ファイルマネージャの「属性 (Properties)」ダイアログボックスを表示します。
操作の詳細については、「ファイルやフォルダの「属性 (Properties)」ダイアログボックスを表示するには」を参照してください。
「カテゴリ (Category)」フィールドの「インフォメーション (Information)」ボタンをクリックします。
ダイアログボックスが基本情報モードに設定されます。
ファイル基本情報領域に表示された内容を確認します。
基本的なファイルの情報のほかにも、「ファイル名 (File Name)」フィールドの右側に、ファイルやフォルダのタイプを示すアイコンが表示されます。
ファイルマネージャの「属性 (Properties)」ダイアログボックスを表示します。
操作の詳細については、「ファイルやフォルダの「属性 (Properties)」ダイアログボックスを表示するには」を参照してください。
「カテゴリ (Category)」フィールドの「アクセス権 (Permissions)」ボタンをクリックします。
ダイアログボックスがアクセス権モードに設定されます (次の図を参照)。
アクセス権領域に表示された設定内容を確認します。
この領域には、所有者、グループ、およびその他の各分類に設定された読み取り権、書き込み権、実行権と、それぞれの変更用のボタンが表示されています。右端にある「実効 (Effective)」欄には、コマンド行インタフェースに表示されたアクセス権に従って、ACL マスクが適用された後のアクセス権が表示されます。
アクセス権を変更するには、所有者、グループ、その他の読み取り権、書き込み権、実行権ボタンを適宜クリックします。
変更結果は、右端の「実効 (Effective)」欄で確認できます。
変更したアクセス権が適用される対象を指定するには、ウィンドウの下部にある「変更を適用 (Apply Changes To)」オプションメニューから、該当する対象項目を選択します。
対象項目として、現在のファイル、親フォルダ内のすべてのファイル、親フォルダとそのサブフォルダ内のすべてのファイルのいずれかを選択できます。
「了解 (OK)」または「適用 (Apply)」をクリックし、アクセス権の設定内容を保存します。
ファイルマネージャの「属性 (Properties)」ダイアログボックスを表示します。
操作の詳細については、「ファイルやフォルダの「属性 (Properties)」ダイアログボックスを表示するには」を参照してください。
「カテゴリ (Category)」フィールドの「アクセス権 (Permissions)」ボタンをクリックします。
ダイアログボックスがアクセス権モードに設定されます (図 5-6)。
アクセス制御リスト領域が現在表示されていない場合は、「アクセス制御リストを表示 (Show Access Control List)」ボタンをクリックします。
アクセス制御リスト領域のエントリを確認します。
対象項目に対する ACL エントリがすべてスクロールリストに表示されます。リストには、エントリのタイプ、指定されたタイプの名前、要求済みのアクセス権、実効アクセス権が表示されます。要求済みのアクセス権とは、ACL マスクが適用される前のデフォルトのアクセス権を指し、実効アクセス権とは、マスクが適用された後のアクセス権を指します。
「ファイルやフォルダの ACL エントリを表示するには」の説明に従って、ファイルマネージャの「属性 (Properties)」ダイアログボックスを表示します。
ACL 領域の右側にある「追加 (Add)」ボタン (図 5-6) をクリックします。
次の図に示すような、ファイルマネージャの「アクセスリストのエントリの追加 (Add Access List Entry)」ダイアログボックスが表示されます。
ACL エントリのタイプを指定します。
オプションメニューに表示される ACL タイプは、対象項目としてファイルとフォルダのどちらを選択したかによって異なります。ファイルを選択した場合は、「ユーザー (User)」と「グループ (Group)」しか選択できませんが、フォルダの場合は、すべてのエントリを選択できます。ACL タイプの内容については、表 5-1 を参照してください。
このほか、デフォルトエントリの 1 つを選択すると、ダイアログボックスの下部にメッセージが表示され、デフォルトの所有者、デフォルトの所有者グループ、デフォルトのその他、デフォルトのマスクが、それぞれ適用可能なアクセス権とともに ACL に追加されることが通知されます。
「名前 (Name)」フィールドが入力可能になっている場合は、タイプ名を入力します。
「ユーザー (User)」、「グループ (Group)」、「デフォルトのユーザー (Default User)」「デフォルトのグループ (Default Group)」のいずれかを選択した場合に、そのタイプの名前または ID を入力する必要があります。
「デフォルトの所有ユーザー (Default Owning User)」、「デフォルトの所有グループ (Default Owning Group)」、「デフォルトのその他ユーザー (Default Other)」、「デフォルトのマスク (Default Mask)」のいずれかを選択した場合は、タイプ名の入力が不要なため、「名前 (Name)」フィールドは使用不可の状態になります。
有効または無効にしたいアクセス権をクリックします。
有効なアクセス権には、チェックマークが付いています。選択したアクセス権が、マスクによって書き換えられてしまう場合は、ダイアログボックスの下部のメッセージ表示領域に警告が表示され、警告音が鳴ります。有効なアクセス権の欄に、マスクが適用された後のアクセス権が表示されるので、違いを確認できます。しかし、エントリはそのままにしておいて構いません。後からマスクを変更することによって、ここで選択したアクセス権を有効にすることができます。
ダイヤログボックスの「追加 (Add)」をクリックします。
エントリが追加され、関連するデフォルトのエントリとともに「アクセス制御リスト (Access Control List)」領域に表示されます。デフォルトとは異なるアクセス権設定にしたい場合は、変更することも可能です。詳細については、「ACL エントリを変更するには」を参照してください。
指定したアクセス権または ACL エントリの対象となる項目を指定するには、ウィンドウの下部にある「変更を適用 (Apply Changes To)」オプションメニューから、該当する項目を選択します。
対象項目には、現在のファイル、親フォルダ内のすべてのファイル、親フォルダとそのサブフォルダ内のすべてのファイルのいずれかを選択できます。
「了解 (OK)」または「適用 (Apply)」をクリックし、ACL エントリ (および変更したアクセス権) を保存します。
「ファイルやフォルダの ACL エントリを表示するには」の説明に従って、ファイルマネージャの「属性 (Properties)」ダイアログボックスを表示します。
アクセス制御リスト領域から、変更するエントリを選択します。
ACL 領域の右側にある「変更 (Change)」ボタン (次の図を参照) をクリックし、「アクセスリストのエントリの変更 (Change Access List Entry)」ダイアログボックスを表示します。
エントリタイプとして「ユーザー (User)」、「グループ (Group)」、「デフォルトのユーザー (Default User)」、「デフォルトのグループ (Default Group)」のいずれかを選択した場合は、ダイアログボックスに「タイプ (Type)」メニュー (図 5-8) が表示されるので、タイプを変更できます。「デフォルトの所有ユーザー (Default Owning User)」、「デフォルトの所有グループ (Default Owning Group)」、「デフォルトのその他ユーザー (Default Other)」、「デフォルトのマスク (Default Mask)」のいずれかを選択した場合は、タイプが固定となるため、「タイプ (Type)」メニューボタンは表示されません。図 5-9 は、「デフォルトのマスク (Default Mask)」エントリを変更する場合の画面例を示しています。
ACL エントリのタイプを指定します。
この場合、手順 3 で説明したように、指定可能なタイプには制限があります。
「名前 (Name)」フィールドが入力可能になっている場合は、変更したいタイプ名を入力します。
有効または無効にしたいアクセス権をクリックします。
有効なアクセス権には、チェックマークが付いています。選択したアクセス権が、マスクによって書き換えられてしまう場合は、ダイアログボックスの下部のメッセージ表示領域に警告が表示され、警告音が鳴ります。有効なアクセス権の欄に、マスクが適用された後のアクセス権が表示されるので、違いを確認できます。しかし、エントリはそのままにしておいて構いません。後からマスクを変更することによって、ここで選択したアクセス権を有効にすることができます。
ダイアログボックスの「変更 (Change)」をクリックします。
エントリが変更され、「アクセス制御リスト (Access Control List) 」領域に反映されます。先に触れたように、以上の手順でマスクを変更すれば、指定したユーザー、グループ、所有者グループの実効アクセス権も変化する場合もあります。
指定したアクセス権または ACL エントリの対象となる項目を指定するには、ウィンドウの下部にある「変更を適用 (Apply Changes To)」オプションメニューから、該当する項目を選択します (図 5-6)。
対象項目には、現在のファイル、親フォルダ内のすべてのファイル、親フォルダとそのサブフォルダ内のすべてのファイルのいずれかを選択できます。
「了解 (OK)」または「適用 (Apply)」をクリックし、変更した ACL エントリ (および変更したアクセス権) を保存します。
「ファイルやフォルダの ACL エントリを表示するには」の説明に従って、ファイルマネージャの「属性 (Properties)」ダイアログボックスを表示します。
アクセス制御リスト領域から、削除するエントリを選択します。
ACL 領域の右側にある「削除 (Delete)」ボタンをクリックすると、削除を確認するためのダイアログボックスが表示されます (次の図を参照)。
選択したエントリが正しいことを確認し、ダイアログボックスの「削除 (Delete)」をクリックします。
アクセス制御リスト領域から選択したエントリが削除されます。
指定したアクセス権または ACL エントリの対象となる項目を指定するには、ウィンドウの下部にある「変更を適用 (Apply Changes To)」オプションメニューから、該当する項目を選択します (図 5-6)。
対象項目には、現在のファイル、親フォルダ内のすべてのファイル、親フォルダとそのサブフォルダ内のすべてのファイルのいずれかを選択できます。
「了解 (OK)」または「適用 (Apply)」をクリックし、現在の ACL エントリ (および変更したアクセス権) を保存します。
この節では、ファイルの機密ラベルの操作方法に焦点を置いて説明します。
ここで説明する手順は、承認されたユーザーのみが使用できます。ただし、 管理者に承認されても、ファイルやディレクトリの機密ラベルを変更することはできません。
ファイルのラベルを表示または変更したい場合は、ファイルマネージャを使用します。
該当ファイルを選択し、ポップアップメニューまたは「選択 (Selected)」メニューから「ラベル (Labels)」を選択します。
「ラベル (Labels)」ダイアログボックスが表示されます (次の図を参照)。
選択したファイルのラベルは、「現在のラベル (Current Label)」フィールドに表示されます。ユーザーアカウントの設定に応じて、機密ラベル、CMW ラベル (機密ラベルと CMW ラベルの組み合わせ) のいずれかが表示されます。
「取り消し (Cancel)」をクリックし、「ラベル (Labels)」ダイアログボックスを閉じます。
変更しようとしている機密ラベルのファイルをだれも使用していないことを確認します。
使用中のファイルの機密ラベルを変更すると、他のユーザーがそのファイルを保存する際に、重大なエラーが発生する恐れがあります。
同じワークスペース内に、現在のファイルの機密ラベルと、新しい機密ラベルのファイルマネージャをそれぞれ表示します。
具体的には、新しい機密ラベルで 2 つ目のワークスペースを開き、そこにファイルマネージャを表示して、最初のワークスペースに配置します。この手順の詳細については、「ツアー : 異なる機密ラベルのアプリケーションをワークスペースに配置する」を参照してください。
ファイルのアイコンを、元のファイルマネージャから新しい機密ラベルのファイルマネージャにドラッグします (次の図を参照)。
ファイルマネージャの確認ダイアログボックスが表示されます。次の図を参照してください。
ファイルマネージャの確認ダイアログボックスで「適用 (Apply)」ボタンをクリックし、ファイルの転送を完了します。
「ファイルの機密ラベルを変更するには (移動操作)」と同じ手順に従います。ただし、手順 3 を行う場合に、Control キーを押しながらファイルのアイコンをドラッグします。この操作は、ファイルを別の機密ラベルで別のバージョンとして同じ名前で編集したい場合に便利です。
「ファイルの機密ラベルを変更するには (移動操作)」と同じ手順に従います。ただし、手順 3 を行う場合に、Shift キーと Control キーの両方を押しながらファイルのアイコンをドラッグします。この操作は、下位の機密ラベルのファイルを上位の機密ラベルで表示させたい場合に便利です。ただし、書き込みは、下位の機密ラベルでしか行えません。
Trusted Solaris には、ホームディレクトリに格納できる 2 種類の特別なファイルが用意されており、最下位の機密ラベルのホームディレクトリから、別の機密ラベルのホームディレクトリにファイルをコピーしたりリンクしたりできます。これらのファイルは、ある機密ラベルで実行中のアプリケーションが、異なる機密ラベルを持つシングルレベルディレクトリ内のファイルを要求するといった問題を回避するために提供されており、次の種類があります。
.copy_files - 異なる機密ラベルのワークスペースに最初に移動する際に、コピーされるファイルの名前を格納する。このファイルは、常に特定のファイルに書き込みを行うアプリケーションを使用しているときに、データを異なる機密ラベルで別々に保持したい場合に便利です。
.link_files - 異なる機密ラベルのワークスペースに最初に移動する際に、リンクされるファイルの名前を格納する。このファイルは、特定のファイルを複数の機密ラベルで使用可能にしながらも、書き込みだけは最下位の機密ラベルに限定したい場合に便利です。この種類のファイルには、.dtprofile、.login などがあります。
どちらの種類のファイルも、1 行に 1 ファイルずつエントリを格納していきます。ホームディレクトリ内のサブディレクトリへのパスも指定できますが、パスはすべてホームディレクトリ内に存在しなければならないため、スラッシュを頭に付けることはできません。
.copy_files と .link_files ファイルは、すでに管理者によって各自のホームディレクトリにインストールされている可能性があります。これらのファイルの変更は、各ユーザーの判断に委ねられます。ただし、両方のファイルに重複しているエントリや、すでに他の機密ラベルに存在しているファイルエントリなどの例外の扱いについては、保護対策が取られていません。そのため、これらのファイルを変更する際は、管理者の指示に従うことをお勧めします。