UID가 일치하지 않는 시스템 간에 NFSv4 UID 매핑을 어떻게 수행할 수 있습니까?

UID가 일치하지 않는 시스템 간에 NFSv4 UID 매핑을 어떻게 수행할 수 있습니까?

저는 세 개의 Ubuntu 시스템이 있는 연구실에서 일하고 있으며 NFS를 통해 일부 파일 시스템을 교차 마운트하고 싶습니다. 그러나 시스템에 동일한 사용자 이름이 일부 있지만 UID와 GID는 일치하지 않습니다. 세 시스템이 별도로 설정되었기 때문입니다. 한 시스템에서 다른 시스템으로 NFS 파일 시스템을 마운트하면 소유권이 잘못 표시됩니다. 예를 들어, UID 1000이 server1의 alice이고 동일한 UID 1000이 server2의 bob인 경우 server1이 server2의 내보낸 파일 시스템을 마운트하면 bob의 파일은 alice가 소유한 것으로 나타납니다.

그렇다면 NFS(v4)가 연관된 사용자 이름을 통해 서버 간에 UID를 변환하도록 할 수 있는 방법이 있습니까? 이에 대해 인터넷 검색을 통해 Kerberos, LDAP 또는 NIS에 대한 참조를 많이 보았습니다. 이는 간단한 작업에 비해 엄청난 과잉 작업으로 보이며 이러한 시스템은 중앙에서 관리되지 않기 때문에 불가능할 수도 있습니다.이 링크내가 묻는 것이 불가능하다는 것을 나타내는 것 같습니다. 맞습니까?

/etc/idmapd.conf편집: 인터넷에서 생각하거나 찾을 수 있는 모든 구성을 시도했으며 idmapd 프로세스가 명확하게 실행되는 동안 지금까지 NFS가 이를 사용하려고 시도하고 있다는 증거를 전혀 보지 못했습니다. NFS 마운트에 대해 보고된 사용자 ID에는 아무런 영향을 미치지 않았습니다.

답변1

NFSv4는 ID 매핑을 지원합니다. 활성화되면 NFS는 숫자 ID 대신 사용자 이름을 전송합니다. 동일한 사용자에 대해 다른 숫자 uid를 갖는 호스트는 문제가 되지 않습니다. 사용자 이름이 호스트의 uid에 매핑되기 때문입니다.

ID 매핑은 항상 Kerberos 보안 모드( )와 함께 사용됩니다 sec=krb5.

ID 매핑은 AUTH_UNIX(기본값 sec=sys) 모드에서도 사용할 수 있습니다. 다음에 대한 답변으로 구성 세부 사항을 설명했습니다.sec=sys에서 작동하는 NFSv4 idmap을 얻는 방법.

답변2

중앙 집중식 사용자 관리가 없는 경우 제가 보기에 "가장 좋은" 방법은 모든 서버가 각 사용자에 대해 동일한 GID 및 UID를 사용하도록 강제하는 것입니다. 이제 ... 저는 파일 및/또는 디렉토리에 대해서만 이야기하고 있습니다.

이 경우 내가 할 일은 다음과 같습니다.

  • 현재 사용중인 UID, GID를 각각 등록합니다.
  • 모든 서버의 그룹을 편집 /etc/passwd하고 일치시킵니다. /etc/group다음 단계가 더 빨라지도록 새 UID 및 GID를 사용하는 것이 좋습니다.
  • 다음을 실행하세요(시간이 좀 걸립니다).

    find / -group <OLD_GID> -exec chgrp <NEW_GID> '{}' \+
    find / -user  <OLD_UID> -exec chown <NEW_UID> '{}' \+
    

관련 정보