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


11

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에 영향을 미치지 않습니다.


1
가장 쉬운 방법은 모든 물건을 정리하는 것입니다. 상자가 세 개뿐이므로 현재 인증 체계를 유지할 수 있지만 모든 사용자 UID / GID를 상자 전체에서 동기화해야합니다. 이것은 실제로 어려운 작업이 아닙니다.
Serge

그렇습니다. 결국 내가 한 일입니다.
Ryan C. Thompson

답변:


5

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

음, "find"문은 루트 디렉토리에서 시작합니다. 이 명령은 시스템의 모든 디렉토리의 소유권을 변경합니다. 이러한 명령에 제안 된 변경 사항에는 시스템의 모든 파일이 포함됩니다. 이 명령이 실행되는 디렉토리를 제한하지 않으면 매우 나쁜 날이 될 것입니다.

2
find man : -group gname 파일이 그룹 gname에 속하는 경우에 해당됩니다. gname이 숫자이고 group (4) 데이터베이스에 나타나지 않으면 그룹 ID로 사용됩니다.
BitsOfNix

1

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

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

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.