카테고리 보관물: Unix

Unix

UID가 일치하지 않는 시스템에서 NFSv4 UID 매핑을 어떻게 수행 할 수 있습니까? 3 개의 Ubuntu 시스템이있는 실험실에서 일하고

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

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

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



답변

중앙 집중식 사용자 관리 기능이 없으면 “가장 좋은”방법은 모든 서버가 각 사용자에 대해 동일한 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> '{}' \+
    

답변

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

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

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


답변