UID가 일치하지 않는 시스템 간에 NFSv4 UID를 매핑하는 방법은 무엇입니까?

UID가 일치하지 않는 시스템 간에 NFSv4 UID를 매핑하는 방법은 무엇입니까?

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

그러면 연결된 사용자 이름을 통해 서버 간에 UID를 변환하도록 NFS(v4)를 얻는 방법이 있습니까? Google에서 검색하면서 Kerberos, LDAP 또는 NIS에 대한 참조를 많이 보았습니다. 이는 이러한 간단한 작업에 비해 엄청난 과잉처럼 보였고 이러한 시스템은 중앙에서 관리되지 않기 때문에 아마도 불가능했을 것입니다.이 링크내가 요구하는 것이 불가능하다는 것을 나타내는 것 같습니다. 맞아?

/etc/idmapd.conf편집: 인터넷에서 찾을 수 있거나 생각할 수 있는 모든 구성을 시도했으며 idmapd 프로세스가 분명히 실행되는 동안 NFS가 이를 사용하려고 한다는 증거를 본 적이 없으며 NFS에서는 결코 실패하지 않습니다. 보고된 사용자 ID는 설치에 영향을 미치지 않습니다.

답변1

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

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

ID 매핑은 sec=sysAUTH_UNIX(기본값) 모드에서도 사용할 수 있습니다. 내 답변에서 구성 세부 사항을 설명했습니다.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> '{}' \+
    

관련 정보