17.4 NCPおよびPOSIXのファイルアクセス権の調整

ディレクトリやファイルのセキュリティに関し、NetWare管理者が求める一定の内容があります。たとえば、ホームディレクトリは個人秘であり、ディレクトリの所有者のみが内容を確認できることが求められます。しかし、NCP (NetWare Core Protocol)およびPOSIXでは、ファイルのセキュリティモデルが異なる(セクション 21.2.1, LinuxファイルおよびNCP (NetWare Core Protocol)ファイルのセキュリティモデルの比較を参照)ため、POSIXファイルシステムのデフォルト設定には当てはまりません。

ホームディレクトリを個人秘にする場合は、OES 2にLUM (Linux User Management)をインストールするときに、ホームディレクトリを個人秘にするオプションが用意されています。このオプションは、これまで、NetWare管理者が参照できた内容を自動的に個人秘に設定します。ただし、このオプションは新しく作成されたホームディレクトリにのみ有効なため、アクセス権の調整が必要な場合、このほかにも理解し、行うことがあります。

POSIXディレクトリを、さらにNCPモデルに近づけるための設定方法を理解するために、この節の情報を使用します。

17.4.1 アクセス権の管理

NCPディレクトリは、デフォルトでは個人秘です。ディレクトリまたはファイルのトラスティとしてユーザまたはグループを割り当てる場合、それらのトラスティは、割り当てられた領域に自動的にナビゲートし、そのレベルおよびそれ以下に設定したアクセス特権をすべて自動的に実行します。ユーザの目的に合わせ、別々のアクセス特権を必要なだけトラスティに割り当てることができます。

一方、従来型のLinux (POSIX)ディレクトリには、Linuxシステムの各ファイルオブジェクトに定義された、3つのセットのパーミッションを介して、アクセスできます。これらのセットには、読み込み(r)、書き込み(w)、実行(x)の各パーミッションがあり、それぞれが3種類のユーザ(ファイル所有者、グループ、その他のユーザ)ごとに設定されます。OES 2のLinuxカーネルはまた、この機能を拡張するアクセス制御リスト(ACL)をサポートします。ただし、ACLについてはここでは説明しません。ACLの詳細については、『SLES 10 SP1 Installation and Administration Guide』のAccess Control Lists in Linuxを参照してください。

Linuxのchownコマンドでは、ファイルの所有者および(または)グループを、LUM対応ユーザまたはLUM対応グループに変更できます。たとえば、chown -R user1 /home/user1は、user1ホームディレクトリおよびそのすべてのサブディレクトリとファイルの所有者を、user1に変更します。詳細については、OES 2 Linuxサーバの「chown man」ページを参照してください。

Linuxのchmodコマンドは、3種類のユーザ(ファイル所有者、グループ、その他のすべてのユーザ)の、ディレクトリおよびファイルのアクセス特権を調整する、単純で迅速な方法を提供します。もっとも単純な形式として、コマンドは3種類の各ユーザのタイプの権利を象徴する、0から7までの範囲の番号を使用します。最初の番号は所有者の権利、2番目の番号はグループの権利、そして3番目の番号はその他の権利を設定します。各番号は、次に示すように、権利のグループを表します。

[数値]

設定

2進数表記

0

- - -

0 0 0

1

- - x

0 0 1

2

- w -

0 1 0

3

- w x

0 1 1

4

r - -

1 0 0

5

r - x

1 0 1

6

r w -

1 1 0

7

r w x

1 1 1

2進数システムを周知したユーザには、この方法が各番号が示す内容を記憶する方法として容易であることがわかるでしょう。

たとえば、chmod 777 /homeは所有者、グループ、およびその他のユーザに、読み込み、書き込み、および実行権限を与えます。一方、chmod 700 /homeはディレクトリ所有者のみにその3つの権限を与え、グループとその他のユーザにはなんの権限も与えまていせん。chmod 750 /homeは所有者にrwx権限を、グループにr-x権限を与え、その他のユーザにはなにも与えません。

chmodコマンドの詳細については、OES 2 Linuxサーバの「chmod man」のページを参照してください。

17.4.2 個人秘作業ディレクトリの提供

NCPディレクトリを個人秘にするためには、トラスティとして単一ユーザを割り当て、その親ディレクトリのトラスティ権を持つ想定外のユーザまたはグループがないことを確認します。

従来型Linuxボリュームに個人秘作業領域を作成するためには、次を行います。

  1. ディレクトリの所有者であるユーザを作成します。たとえば、chownコマンドを使用して所有者(ユーザ)を変更することができます。

    chown -R user: / path/ user_dir

    ここで、userはeDirectoryユーザ、pathは作業ディレクトリへのファイルパス、およびuser_dirは作業ディレクトリの名前です。-Rオプションは、すべてのサブディレクトリおよびファイルに、このコマンドを繰り返し適用します。

  2. そのユーザにのみディレクトリへの読み込み、書き込み、および実行権限(rwx --- ---)を与えます。たとえば、chmodコマンドを次のように使用します。

    chmod -R 700 / path/ user_dir

    ここで、pathは作業ディレクトリへのファイルパスuser_dirは作業ディレクトリの名前です。

  3. パスにある各親ディレクトリをroot (/)ディレクトリまでさかのぼってチェックし、すべてのユーザ(Linuxではother usersとして参照)が、各ディレクトリ内での読み込みおよび実行権限(r-x)を持っていることを確認します。権限は3番目のパーミッションのグループで表されています (. . . . . . r-x)。(所有者およびグループのパーミッションは関係ないため、ドット(.)で表示しています。)

    親ディレクトリでは、ディレクトリ所有者は「その他」のユーザであり、それらが所有する個人秘ディレクトリへ下るパスを見る必要があるため、この親ディレクトリのチェックを行います。

    Linuxではr-xがほとんどのファイルのデフォルトであるため、パーミッションを変更する必要はほとんどありません。

17.4.3 グループ作業領域の作成

NCPボリュームでは、ユーザをグループに割り当てて、ディレクトリにグループトラスティ権を与えることにより、グループ作業領域を作成できます。代替方法として、作業領域でユーザに別のレベルのアクセスが必要な場合、各ユーザをトラスティとして割り当てることが可能で、必要な権利のみを与えることができます。

従来型Linuxボリュームにグループ作業領域を作成するためには、次を行います。

  1. chownコマンドを使用して、ディレクトリに所有権を設定します。たとえば、次を入力します。

    chown -R : group / path/ group_dir

    ここで、groupはグループの名前、pathは作業領域へのファイルパス、およびgroup_dirはグループ作業ディレクトリです。-Rオプションは、group_dirにあるサブディレクトリおよびファイルに、この処置を適用します。

  2. グループに読み込み、書き込み、および実行権限(...rwx...)を与えます。(所有者およびその他のユーザのパーミッションは関係ないため、ドット(.)で表示しています。)

    たとえば、次のように入力します。

    chmod -R 770 / path/ group_dir

    ここで、pathは作業領域へのファイルパス、およびgroup_dirはグループ作業ディレクトリです。2番目の7はグループにrwxを与えます。(例では、ディレクトリの所有者がすべての権利を保持するものとしています。そのため、最初の番号も7になっています。)

  3. パスにある各親ディレクトリをroot (/)ディレクトリまでさかのぼってチェックし、グループが各ディレクトリ内での読み込みおよび実行権限(r-x)を持っていることを確認します。権限は2番目のパーミッションのグループで表されています (. . . . r-x . . .)。

    chmodコマンドを使用して、グループのパーミッションに数字の5を指定して、必要な箇所を調整します。詳細については、「アクセス権の管理」を参照してください。

17.4.4 パブリック作業領域の作成

NCPボリュームでは、[Public]をトラスティとして割り当て、ディレクトリに必要なトラスティ権を与えることにより、パブリック作業領域を作成できます。

作業領域そのものには、所有者、グループ、およびその他のすべてのユーザに、読み込み、書き込み、および実行権限(rwx rwx rwx)のパーミッションを設定します(chmod 777)。

すべてのその他のユーザは、Linuxシステムのrootまでのパスにある、各親ディレクトリのシステム上での読み込みおよび実行権限を持っている必要があります。これは、すべての親ディレクトリのパーミッションをrwx --- r-xにすることを意味します。

従来型Linuxボリューム上でのパブリック作業領域の作成方法。

  1. chownコマンドを使用して、その他のユーザ(すべてのユーザ)にすべての権限(rwx)を割り当てます。たとえば、次のように入力します。

    chmod -R 707 / path/ group_dir

    ここで、pathは作業領域へのファイルパス、およびgroup_dirはグループ作業ディレクトリです。3番目の7はグループにrwxを付与します。(例では、ディレクトリの所有者がすべての権利を保持するものとし、グループ設定は無関係であることを前提にしています。)

  2. パスにある各親ディレクトリをroot (/)ディレクトリにさかのぼるまでチェックし、すべてのユーザ(その他のユーザ)が各ディレクトリ内での読み込みおよび実行権限(r-x)を持っていることを確認します。権限は3番目のパーミッションのグループで表されています (. . . . . . . rwx)。(所有者およびグループのパーミッションは関係ないため、ドット(.)で表示しています。)

    chmodコマンドを使用して、その他のパーミッションに数字の5を指定して、必要な箇所を調整します。詳細については、この節の最初の「アクセス権の管理」を参照してください。

17.4.5 権限継承の設定

POSIXの権限をNCPモデルに調整する最終ステップは、NCP環境設定ファイルのPOSIXパーミッションのボリュームフラグの継承です。これで、これらの領域に作成されたすべてのファイルおよびサブディレクトリが、それらの親ディレクトリと同じパーミッションを継承します。処理手順については、『OES 2: NCP Server for Linux Administration Guide』のConfiguring Inherit POSIX Permissions for an NCP Volumeを参照してください。