パスワードを忘れた? アカウント作成
505130 journal

mishimaの日記: Solaris NFS のちょっといい話

日記 by mishima

Solaris の NFS プロトコルには、匿名ユーザID (anonuid) および匿名グループID (anongid) という概念がある。
この anonuid および anongid は、NFS プロトコル上でしか使用されない仮想的な UID/GID であり、ファイルシステム上ではいずれかの実ユーザ/実グループに結びつけられる。
身元のはっきりしないユーザおよびグループからのアクセスを匿名ユーザ、匿名グループに割り当てるのだろうが、
事実上、現状でこれに該当するのは root squash されている root からのアクセスのみである。

Solaris では、OS 上の実ユーザ nobody・実グループ nobody を、NFS プロトコル上の匿名ユーザ・匿名グループに割り当てている。
それぞれ UID と GID は次のようになっている。

        nobody uid: 60001
        anonuid : 4294967294 (-2)
        nobody gid: 60001
        anongid : 4294967294 (-2)

サーバとクライアント間での UID/GID の変換を図にすると、次のような感じだ。

  【Solaris Filesystem】
            ↓ UID:60001, GID:60001
  【Solaris NFS サーバ】
            ↓ UID:-2, GID:-2
  【ネットワーク】
            ↓ UID:-2, GID:-2
  【Solaris NFS クライアント】
            ↓ UID:60001, GID:60001
  【Solaris Filesystem】

当然、逆変換も行われる。システムが Solaris のみだったら、これでうまくいく。

問題は、Solaris と他の OS との間で NFS のファイル共有を行った場合だ。
どうやら、NFS サーバでおこなう実ユーザ→匿名ユーザという変換・逆変換と、
NFS クライアントがおこなう匿名ユーザ→実ユーザという変換・逆変換は、Solaris しかやっていないみたいだ。
つまり Solaris NFS サーバと Linux クライアントではこーなる。

  【Solaris Filesystem】
            ↓ UID:60001, GID:60001
  【Solaris NFS サーバ】
            ↓ UID:-2, GID:-2
  【ネットワーク】
            ↓ UID:-2, GID:-2
  【Linux NFS クライアント】
            ↓ UID:4294967294, GID:4294967294
  【Linux Filesystem】

残念なことに逆変換も行われないようだ。

  【Linux Filesystem】
            ↓ UID:4294967294, GID:4294967294
  【Linux NFS クライアント】
            ↓ UID:4294967294, GID:4294967294
  【ネットワーク】
            ↓ UID:4294967294, GID:4294967294
  【Solaris NFS サーバ】
            ↓ UID:4294967294, GID:4294967294
  【Solaris Filesystem】

そんなわけで、Solaris 上で nobody:nobody 権限となっているファイルを NFS で扱うのは非常に難しい、
というのが結論のようです。

…ぜんぜんいい話じゃねーよっ

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

あと、僕は馬鹿なことをするのは嫌いですよ (わざとやるとき以外は)。-- Larry Wall

読み込み中...