シェアのプロトコル - NFS
Table 12-7 シェアのプロトコル - NFS のプロパティー
|
|
|
シェアモード
|
off/ro/rw
|
シェアが読み取り専用か、読み取り/書き込みに使用できるか、どちらにも使用できないかを決定します。CLI では、「on」は「rw」の別名です。
|
setuid/setgid ファイル作成を無効にする
|
nosuid
|
このオプションを選択すると、クライアントは setuid (S_ISUID) ビットと setgid (S_ISGID) ビットを設定してファイルを作成することも、chmod(2) システム呼び出しによって既存のファイルにこれらのビットを設定することもできなくなります。
|
クライアントがサブディレクトリをマウントできないようにします
|
nosub
|
このオプションを選択すると、クライアントがサブディレクトリを直接マウントすることはできなくなります。シェアのルートをマウントするように強制されます。注: これは NFSv2 プロトコルと NFSv3 プロトコルだけに適用され、NFSv4 には適用されません。
|
匿名ユーザーマッピング
|
anon
|
特定のクライアントで「root」オプションが有効になっている場合を除き、そのクライアントの root ユーザーは不明なユーザーとして扱われ、そのユーザーがシェアのファイルにアクセスを試みると、すべてこの uid のユーザーによる操作として扱われます。そのあと、ファイルのアクセス権ビットと ACL は通常どおり評価されます。
|
文字エンコーディング
|
下記を参照
|
すべてのクライアントのデフォルトの文字セットを設定します。詳細は、文字セットエンコーディングに関するセクションを参照してください。
|
セキュリティーモード
|
下記を参照
|
すべてのクライアントのセキュリティーモードを設定します。
|
|
全体的なシェアモードに対する例外は、クライアントごと、またはクライアントの集まりごとに定義できます。クライアントがアクセスを試みると、リスト内でそのクライアントに最初に一致した例外に従ってアクセスが許可されます。あるいは、そのような例外がない場合は、上記で定義されたグローバルなシェアモードに従ってアクセスが許可されます。このようなクライアントの集まりは、次の 3 つのタイプのいずれかを使用すると定義できます。
Table 12-8 クライアントの集まりのタイプ
|
|
|
|
ホスト (FQDN) またはネットグループ
|
none
|
指定された完全修飾名に解決される IP アドレスを持つ単一のクライアント、または、クライアントの IP アドレスを解決した完全修飾名を含んでいるネットグループ
|
caji.sf.example.com
|
DNS ドメイン
|
.
|
この接尾辞で終わる完全修飾名に解決される IP アドレスを持つすべてのクライアント
|
sf.example.com
|
ネットワーク
|
@
|
CIDR 表記で指定された IP サブネットに含まれる IP アドレスを持つすべてのクライアント
|
192.168.20.0/22
|
|
次に、指定したクライアントまたはクライアントの集まりに対して、それぞれ 2 つのパラメータを指定します。1 つは、シェアに対する読み取り専用アクセスまたは読み取り/書き込みアクセスをクライアントに許可するかどうか、もう 1 つは、クライアントの root ユーザーを root ユーザー (選択されている場合) として扱うか不明なユーザーとして扱うかです。
ネットグループを使用する場合、ネットグループはまず NIS (有効になっている場合)、次に LDAP (有効になっている場合) から解決されます。LDAP を使用する場合は、ネットグループがデフォルトの場所 ou=Netgroup,(ベース DN) にあることと、標準スキーマを使用していることが必要です。通常、ネットグループエントリのユーザー名コンポーネントは NFS に影響を与えず、ホスト名だけが意味を持ちます。ネットグループに含まれるホスト名は正規名であること、また、DNS で解決される場合は完全修飾名であることが必要です。つまり、NFS サブシステムは、リクエストしているクライアントの IP アドレスを解決すると、指定された FQDN または指定されたネットグループのいずれかのメンバーに一致する正規ホスト名になることを検証しようとします。ドメインのコンポーネントも含めて正確に一致する必要があります。それ以外の場合、その例外には一致せず、次の例外が調べられます。ホスト名の解決の詳細は、DNS を参照してください。ネットグループの管理は複雑になることがあります。可能な場合は、代わりに IP サブネット規則または DNS ドメイン規則を使用することを検討してください。
2013.1.0 ソフトウェアリリースでは、Unix クライアントユーザーはパフォーマンスを低下させることなく、最大 1024 グループに所属することが可能です。それ以前のリリースでは、Unix クライアントユーザーにつき最大 16 グループをサポートしていました。
シェアのプロトコル - CLI
CLI では、すべての NFS シェアモードと例外を、「sharenfs」プロパティーの 1 つのオプション文字列で指定します。この文字列は、上記の表の値をコンマで区切ったリストです。BUI に関して説明したグローバルなシェアモードに相当する、「ro」、「rw」、または「off」のいずれかで始める必要があります。例:
set sharenfs=ro
このコマンドは、すべてのクライアントのシェアモードを読み取り専用に設定します。すべてのクライアントで、root ユーザーは一般的な「nobody」ユーザーとしてシェアのファイルにアクセスします。
「nosuid」オプションまたは「anon」オプション、あるいはその両方を追加することもできます。CLI では、プロパティー値に「=」文字が含まれている場合、引用符で囲む必要があることを忘れないでください。したがって、不明なユーザーをすべて uid 153762 にマッピングするように定義するには、次のように指定します
set sharenfs="ro,anon=153762"
追加の例外は、「option=collection」という形式のテキストを追加することで指定できます。ここで、「option」は、クライアントの集まり (collection) に付与するアクセス権のタイプを定義する、「ro」、「rw」、「root」のいずれかです。collection の指定には、上記の表の接頭辞文字と、DNS ホスト名/ドメイン名または CIDR ネットワーク番号を使用します。たとえば、sf.example.com ドメイン内のすべてのホストに読み取り/書き込みアクセス権を付与し、192.168.44.0/24 ネットワーク内のホストに root アクセス権を付与するには、次のようなコマンドを使用します
set sharenfs="ro,anon=153762,rw=.sf.example.com,root=@192.168.44.0/24"
ネットグループ名は、個別の完全修飾ホスト名を使用できる場所であればどこでも使用できます。たとえば、「engineering」ネットグループに読み取り/書き込みアクセス権を付与するには、次のように指定します。
set sharenfs="ro,rw=engineering"
セキュリティーモードは、「option=mode」という形式のテキストを追加することで指定できます。ここで、「option」は「sec」、「mode」は「sys」、「krb5」、「krb5:krb5i」、「krb5:krb5i:krb5p」のいずれかです。
set sharenfs="sec=krb5"
セキュリティーモード
セキュリティーモードはシェア単位で設定され、パフォーマンスに影響を与えることがあります。次の表では、Kerberos セキュリティー設定について説明します。
Table 12-9 Kerberos セキュリティー設定
|
|
krb5
|
Kerberos V5 によるエンドユーザー認証
|
krb5i
|
krb5 に完全性保護を加えたもの (データパケットに改ざんがないことが保証される)
|
krb5p
|
krb5i にプライバシ保護を加えたもの (データパケットに改ざんがないことと暗号化されていることが保証される)
|
|
Kerberos フレーバの組み合わせをセキュリティーモード設定で指定できます。組み合わせのセキュリティーモードにより、クライアントは一覧表示されている任意の Kerberos フレーバでマウントできます。
Table 12-10 セキュリティーモードの設定
|
|
sys
|
システム認証
|
krb5
|
Kerberos v5 のみ - クライアントはこのフレーバを使用してマウントする必要があります。
|
krb5:krb5i
|
Kerberos v5 に完全性を加えたもの - クライアントは一覧表示されている任意のフレーバを使用してマウントできます。
|
krb5i
|
Kerberos v5 完全性のみ - クライアントはこのフレーバを使用してマウントする必要があります。
|
krb5:krb5i:krb5p
|
Kerberos v5 に完全性またはプライバシを加えたもの - クライアントは一覧表示されている任意のフレーバを使用してマウントできます。
|
krb5p
|
Kerberos v5 プライバシのみ - クライアントはこのフレーバを使用してマウントする必要があります。
|
|
NFS および Kerberos の詳細は、次を参照してください。
文字セットエンコーディング
通常、ファイル名に使用する文字セットエンコーディングは指定されません。NFSv3 プロトコルと NFSv2 プロトコルは文字セットを指定しません。NFSv4 では UTF-8 を使用することになっていますが、すべてのクライアントが従うわけではなく、この制限がサーバーによって強制されることもありません。シェアの「UTF-8 のみ」オプションが無効になっている場合、これらのファイル名は、エンコーディングが認識されることなく、文字どおりにファイルシステムに書き込まれます。したがって、同じエンコーディングを使用しているクライアントのみがこれらを解釈できます。ただし、SMB では、ファイル名をサーバー側で解釈できるように、ファイル名を UTF-8 で保存することが要求されます。これにより、任意のクライアントエンコーディングをサポートすることはできなくなりますが、SMB でのアクセスは引き続き可能です。
そのような構成をサポートするには、文字セットエンコーディングをシェア全体またはクライアント単位で設定します。サポートされている文字セットエンコーディングは次のとおりです。
-
cp932
-
euc-cn
-
euc-jp
-
euc-jpms
-
euc-kr
-
euc-tw
-
iso8859-1
-
iso8859-2
-
iso8859-5
-
iso8859-6
-
iso8859-7
-
iso8859-8
-
iso8859-9
-
iso8859-13
-
iso8859-15
-
koi8-r
-
shift_jis
デフォルトの動作では、文字セットエンコーディングは指定されません (パススルー)。BUI では、標準の例外リストメカニズムによって文字セットを選択できます。CLI では、各文字セット自体がオプションになり、そこに 1 つ以上のホストを指定します。「*」は、シェア全体の設定であることを示します。たとえば、次のコマンドを見てください。
set sharenfs="rw,euc-kr=*"
このコマンドは、「euc-kr」をデフォルトのエンコーディングとしてファイルシステムをシェアします。次のコマンドを見てください。
set sharenfs="rw,euc-kr=host1.domain.com,euc-jp=host2.domain.com"
このコマンドは、host1 には「euc-kr」、host2 には「euc-jp」を使用し、ほかのすべてのクライアントにはデフォルトのエンコーディングを使用します。ホストのリストの形式は、ほかの CLI NFS オプションの形式に従います。
一部の NFS クライアントでは、代替ロケールが正しくサポートされません。詳細は、使用している NFS クライアントのドキュメントを参照してください。