web-dev-qa-db-ja.com

同じNFS共有をマウントしている2つのシステム間でファイルの所有権に一貫性がないのはなぜですか?

Sanストレージに接続されているIBMAIXサーバー(serverA)が1つあります。ボリュームグループとファイルシステム(jfs2)を作成し、ディレクトリ/ profitにマウントしました。

その後、そのディレクトリ用のNFS共有を作成し、NFSデーモンを起動しました。

IBM AIXでもある別のサーバー(serverB)で、マウントポイント/ profitを作成し、次のコマンドを使用してserverAからserverBにnfs共有をマウントしました。mount 192.168.10.1:/profit/profit

ServerBでは、ディレクトリにアクセスして、その中のファイルを一覧表示できます。しかし、奇妙なことに、serverAでは、ディレクトリとファイルはOracleユーザーの所有権の下にあります。しかし、serverBでは、私はそれらを別のユーザーとして見ています。

ServerB、serverAのそのディレクトリにあるファイルに触れると、別のユーザーIDとして表示されます。

これを修正する方法はありますか?

以下はserverBからのファイルリストです

$ ls -l
total 0
-rwxrwxrwx    1 root     system            0 Mar 16 15:00 haha
-rwxrwxrwx    1 radiusd  radiusd           0 Mar 16 15:19 haha2
-rwxrwxrwx    1 radiusd  radiusd           0 Mar 16 15:31 haha3
-rw-r--r--    1 Oracle   oinstall          0 Mar 17 2011  hahah3
drwxrwxrwx    2 radiusd  radiusd         256 Mar 16 14:40 lost+found

ServerAでは、次のようになります。

# ls -l /profit
total 0
-rwxrwxrwx    1 root     system            0 Mar 16 15:00 haha
-rwxrwxrwx    1 Oracle   dba               0 Mar 16 15:19 haha2
-rwxrwxrwx    1 Oracle   dba               0 Mar 16 15:31 haha3
-rw-r--r--    1 10       sshd              0 Mar 17 16:01 hahah3
drwxrwxrwx    2 Oracle   dba             256 Mar 16 14:40 lost+found

以下はserverAの/ etc/exportsファイルです

# more /etc/exports
/profit -vers=3,sec=sys:krb5p:krb5i:krb5:dh,rw

ありがとう。

4
Alvin Sim

各NFSクライアントシステムは、ローカルシステムの / etc/passwd を使用してローカルに数値UIDを検索するか、集中ユーザーデータベースでユーザー名を決定することに注意してください。 NFSサーバーは、UIDを数値形式でのみ保存し、ユーザー名を認識しません。これは、グループ名とGIDにも当てはまります。

あなたの場合、serverAとserverBは/ etc/passwdにリストされている異なるユーザー名を持っている必要があります

これをテストするには、長い(-l)出力でユーザー名またはグループ名に変換するのではなく、ls -nを使用してユーザーIDとグループIDを数値で表示します。 ls -nオプションがAIXで使用できない場合は、この機能のマンページを参照してください。

ユーザー名からuidへのマッピングを確認するには、serverAとserverBの両方で次のいずれかを実行します。

grep $THEUSERID /etc/passwd

または、getentを使用することをお勧めします。これは、/ etc/password、およびディレクトリサービス(LDAPなど)で機能するためです。

getent passwd $THEUSERID

UIDは両方のシステムで同じである必要がありますが、ユーザー名は異なります。

11

あなたは私がNFSエクスポートのナンバーワンルールと呼んでいるものに反対しました:

クライアントがサーバーと同じUIDマッピングを使用しない限り、マウントをクライアントに書き込み可能としてエクスポートしないでください。

つまり、ファイルサーバーの所有者は、すべての潜在的なNFSクライアントが同じ集中型ユーザーデータベース(NIS、NIS +、LDAP、Kerberosなど)を使用することを要求する必要があります。

2
Joe Inwap

私もあなたの問題に遭遇しました これで解決するように管理されています

確かに、 NEED_IDMAPDがファイルに設定されていません/etc/default/nfs-commonクライアント側。

設定NEED_IDMAPD=yesクライアントでも問題を解決しました。これで、クライアントはユーザー名とグループを正しく表示します。

0
Wilson Wong