동일한 NFS 공유를 마운트하는 두 시스템 간에 파일 소유권이 일치하지 않는 이유는 무엇입니까?

동일한 NFS 공유를 마운트하는 두 시스템 간에 파일 소유권이 일치하지 않는 이유는 무엇입니까?

San Storage에 연결된 IBM AIX 서버(serverA)가 있습니다. 볼륨 그룹과 파일 시스템(jfs2)을 생성하고 이를 /profit 디렉토리에 마운트했습니다.

그런 다음 디렉터리에 대한 NFS 공유를 생성하고 NFS 데몬을 시작했습니다.

다른 서버(또한 IBM AIX(serverB))에서 마운트 지점 /profit을 생성하고 다음 명령을 사용하여 nfs 공유를 serverA에서 serverB로 마운트했습니다. 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

감사해요.

답변1

각 NFS 클라이언트 시스템은 로컬 시스템의 로컬 UID를 사용하여 숫자 UID를 조회하여 사용자 이름을 결정한다는 점을 기억하십시오./etc/비밀번호, 또는 중앙 집중식 사용자 데이터베이스에 있습니다. NFS 서버는 UID를 숫자 형식으로만 저장하며 사용자 이름은 모릅니다. 그룹 이름과 GID도 마찬가지입니다.

귀하의 경우, serverA와 serverB는 /etc/passwd에 나열된 사용자 이름이 달라야 합니다.

이를 테스트하려면 ls -n긴(-l) 출력에서 ​​사용자 또는 그룹 이름으로 변환하는 대신 를 사용하여 사용자 및 그룹 ID를 숫자로 표시합니다. ls -nAIX에서 이 옵션을 사용할 수 없는 경우 이 기능에 대한 맨페이지를 참조하십시오.

사용자 이름과 uid 매핑을 보려면 serverA 및 serverB에서 다음 작업 중 하나를 수행합니다.

grep $THEUSERID /etc/passwd

getent또는 /etc/password 및 디렉토리 서비스(LDAP 등)와 함께 작동하므로 를 사용하는 것이 좋습니다 .

getent passwd $THEUSERID

UID는 두 시스템 모두에서 동일해야 하지만 사용자 이름은 다릅니다.

답변2

NFS 내보내기의 첫 번째 규칙이라고 부르는 것을 접했습니다.

클라이언트가 서버와 동일한 UID 매핑을 사용하지 않는 한 쓰기 가능한 마운트를 클라이언트에 내보내지 마십시오.

즉, 파일 서버 소유자는 모든 잠재적 NFS 클라이언트가 동일한 중앙 집중식 사용자 데이터베이스(NIS, NIS+, LDAP, Kerberos 등)를 사용하도록 요구해야 합니다.

답변3

나는 또한 당신의 문제에 직면했고이것으로 해결해보세요:

실제로 클라이언트 파일 NEED_IDMAPD에는 설정이 없습니다 ./etc/default/nfs-common

클라이언트 설정 NEED_IDMAPD=yes도 이 문제를 해결합니다. 이제 클라이언트에 사용자 이름과 그룹이 올바르게 표시됩니다.

관련 정보