none
NFSサーバ(Windows2012r2)とHP-UX(NFSクライアント)間での双方向ユーザマッピングについて RRS feed

  • 質問

  • NFSサーバ(Windows2012r2)とNFSクライアント(HP-UX)間での双方向ユーザマッピングについてなのですが、NFSクライアントでNFS共有フォルダにアクセスした際は、UID、GIDともに望みの者が作られます。

    NFSサーバ側でNFS共有フォルダにファイルを作成した場合、クライアント側でUID、GIDを確認するとUIDはファイルを作成したアカウント名(クライアント、サーバ共通のユーザ名)になるのですが、GIDが「nogroup」となってしまいます。

    %SystemRoot%\system32\drivers\etc\配下にクライアントの/etc/passwd、/etc/groupは配置しています。

    NFSのユーザマッピングは、クライアント⇒サーバのみでしかなされないものなのでしょうか?(NFS経由でしかマッピングされない??)

    2016年9月28日 5:10

回答

  • ※passwd/groupファイルによるマッピングは使ったことがないので、間違っていたらすみません。

    NFSのユーザマッピングで設定した変換ルールを参照して実際に変換を行っているのはNFSサーバー機能です。
    Windows Server上でWindowsユーザがファイルを作る際は、NFSサーバーを介さないので変換ルールは適用されません。

    Windows Server上でWindowsユーザがファイルを作った場合、そのWindowsユーザーのアクセストークンのプライマリ
    グループ値が、新規作成したファイルの(NTFSセキュリティ記述子内の)プライマリグループ値に設定されます。
    このファイルのプライマリグループが、NFSクライアントから見ると、(変換ルールで変換された上で)ファイルの
    gidとして表示されます。
    ファイルのプライマリグループが期待している値と異なるために、期待する変換ルールが適用されておらず、
    gidが期待しない値になっている可能性があると思います。

    Windows Server上の管理者権限のコマンドプロンプトで
      nfsfile ファイルのパス    (例: nfsfile d:\nfsshare\test.txt )
    を実行すると、そのファイルの所有者とプライマリグループを確認することができます。

    なお、ドメインアカウントで作成したファイルの場合は、ファイルのプライマリグループは
     <ドメイン名>\Domain Users
    になっていると思います。変更したい場合は、ADのユーザー管理ツールで、該当ユーザーの[所属グループ]の
    設定でプライマリグループをデフォルトのDomain Usersから他のグループに変更することができます。

    一方、ローカルアカウントで作成したファイルの場合、ファイルのプライマリグループは
      <コンピュータ名>\なし  (英語版OSでは"なし"の部分は"none")
    になっていると思います。おそらくこちらは変更する方法はないと思います。(下記URL)

    How Access Tokens Work
    https://technet.microsoft.com/ja-jp/library/cc783557(v=ws.10).aspx
    ======================================================
    There is also a “NONE” group, which is added to local tokens on non-domain controllers; 
    “NONE” is the SID for the primary group for local accounts.
    ======================================================

    nfsfileコマンドでファイルのプライマリグループを変更することができますので、Windowsサーバー上で
    ファイルを新規作成する度に、毎回nfsfileコマンドでファイルのプライマリグループを希望のグループ
    に変更するような運用回避は可能かと思います。



    2016年10月1日 0:36
  • チャブーンです。

    私もh-yamasakiさんの回答に同意します。おそらくユーザのプライマリグループの設定が適切でないので、こうなったのだと思います(プライマリグループ設定自体はNFSクライアント側から操作することはできないので)。

    参考までに、UNIXユーザマッピングの挙動に関するページをお知らせしておきます。

    https://technet.microsoft.com/en-us/library/bb463218.aspx

    で、結論としてはUNIXと関連あるアカウントについてはプライマリグループをPOSIX仕様で設定してしまった方が吉かな、と思います。プライマリグループが変更されたとしても、Windows側としては最終的な認証に影響は与えません。Domain Usersが単にmemberOfに含まれていれば(GUIから変更した場合自動的にこうなります)、動作の差異(影響)はないという理解なので、とくに問題はありません。


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。

    • 回答の候補に設定 佐伯玲 2016年10月3日 4:19
    • 回答としてマーク 佐伯玲 2016年10月18日 4:10
    2016年10月3日 3:03
    モデレータ

すべての返信

  • ※passwd/groupファイルによるマッピングは使ったことがないので、間違っていたらすみません。

    NFSのユーザマッピングで設定した変換ルールを参照して実際に変換を行っているのはNFSサーバー機能です。
    Windows Server上でWindowsユーザがファイルを作る際は、NFSサーバーを介さないので変換ルールは適用されません。

    Windows Server上でWindowsユーザがファイルを作った場合、そのWindowsユーザーのアクセストークンのプライマリ
    グループ値が、新規作成したファイルの(NTFSセキュリティ記述子内の)プライマリグループ値に設定されます。
    このファイルのプライマリグループが、NFSクライアントから見ると、(変換ルールで変換された上で)ファイルの
    gidとして表示されます。
    ファイルのプライマリグループが期待している値と異なるために、期待する変換ルールが適用されておらず、
    gidが期待しない値になっている可能性があると思います。

    Windows Server上の管理者権限のコマンドプロンプトで
      nfsfile ファイルのパス    (例: nfsfile d:\nfsshare\test.txt )
    を実行すると、そのファイルの所有者とプライマリグループを確認することができます。

    なお、ドメインアカウントで作成したファイルの場合は、ファイルのプライマリグループは
     <ドメイン名>\Domain Users
    になっていると思います。変更したい場合は、ADのユーザー管理ツールで、該当ユーザーの[所属グループ]の
    設定でプライマリグループをデフォルトのDomain Usersから他のグループに変更することができます。

    一方、ローカルアカウントで作成したファイルの場合、ファイルのプライマリグループは
      <コンピュータ名>\なし  (英語版OSでは"なし"の部分は"none")
    になっていると思います。おそらくこちらは変更する方法はないと思います。(下記URL)

    How Access Tokens Work
    https://technet.microsoft.com/ja-jp/library/cc783557(v=ws.10).aspx
    ======================================================
    There is also a “NONE” group, which is added to local tokens on non-domain controllers; 
    “NONE” is the SID for the primary group for local accounts.
    ======================================================

    nfsfileコマンドでファイルのプライマリグループを変更することができますので、Windowsサーバー上で
    ファイルを新規作成する度に、毎回nfsfileコマンドでファイルのプライマリグループを希望のグループ
    に変更するような運用回避は可能かと思います。



    2016年10月1日 0:36
  • チャブーンです。

    私もh-yamasakiさんの回答に同意します。おそらくユーザのプライマリグループの設定が適切でないので、こうなったのだと思います(プライマリグループ設定自体はNFSクライアント側から操作することはできないので)。

    参考までに、UNIXユーザマッピングの挙動に関するページをお知らせしておきます。

    https://technet.microsoft.com/en-us/library/bb463218.aspx

    で、結論としてはUNIXと関連あるアカウントについてはプライマリグループをPOSIX仕様で設定してしまった方が吉かな、と思います。プライマリグループが変更されたとしても、Windows側としては最終的な認証に影響は与えません。Domain Usersが単にmemberOfに含まれていれば(GUIから変更した場合自動的にこうなります)、動作の差異(影響)はないという理解なので、とくに問題はありません。


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。

    • 回答の候補に設定 佐伯玲 2016年10月3日 4:19
    • 回答としてマーク 佐伯玲 2016年10月18日 4:10
    2016年10月3日 3:03
    モデレータ
  • こんにちは、karuma12345 さん
    フォーラムオペレータの佐伯 玲 です。

    h-yamasaki さんやチャブーンさんからお寄せいただいているアドバイスはご覧いただけておりますでしょうか?
    詳細なアドバイスがいただているかと思いましたので私のほうから「回答としてマーク」と設定させていただきますね。

    ご確認いただけましたら返信をお寄せ下さいね。

    宜しくお願い致します。

    TechNet Community Support 佐伯 玲

    2016年10月18日 4:09
  • h-yamasakiさん、詳細な回答ありがとうございます。

    ##Windows Server上でWindowsユーザがファイルを作る際は、NFSサーバーを介さないので変換ルールは適用されません。

    うすうすそんな感じはしていたのですが、はっきりとした回答ありがとうございます。

    nfsfileコマンドでの運用を考えてみます。

    2016年10月18日 9:09
  • チャブーンさん、回答ありがとうございます。

    h-yamasakiさんの回答に同意する旨、了解致しました。

    また参考ページ、参照させて頂きました。ありがとうございます。

    2016年10月18日 9:10