sec=sys와 함께 작동하도록 NFSv4 idmap을 얻는 방법은 무엇입니까?

sec=sys와 함께 작동하도록 NFSv4 idmap을 얻는 방법은 무엇입니까?

나는섬기는 사람(Debian) NFS 및 서비스를 통해 일부 폴더 제공고객(Debian) NFSv4를 사용하여 NFS 서버에 연결하고 내보낸 폴더를 마운트합니다. 지금까지는 폴더 내용을 연결하고 수정할 수 있었습니다. 그러나 사용자들은 완전히 혼란스러워했습니다. 내가 이해한 바로는 이는 NFS가 UID를 사용하여 권한을 설정하고 사용자의 UID로 사용되기 때문입니다.고객그리고섬기는 사람다르면 이런 일이 발생하며 이는 여전히 예상됩니다. 그러나 제가 이해한 바에 따르면 NFSv4를 활성화하면 IDMAPD가 UID 대신 사용자 이름을 시작하고 사용해야 합니다. 사용자가 다음 위치에 존재합니다.섬기는 사람그리고고객반면에 UID가 다릅니다. 그러나 어떤 이유로든 IDMAPD는 작동하지 않거나 작동하지 않는 것 같습니다.

지금까지 내가 한 일은 다음과 같습니다.

서버 측에서:

  • nfs-커널-서버 설치
  • /etc/exports를 올바른 내보내기 설정으로 채웁니다 -->/rfolder ip/24 (rw, sync, no_subtree_check, no_root_squash)
  • /etc/default/nfs-common을 다음으로 변경하십시오.NEED_IDMAPD=예

클라이언트에서

  • nfs-common 설치
  • /etc/default/nfs-common을 다음으로 변경하십시오.NEED_IDMAPD=예
  • "설치 폴더"를 사용하세요.마운트 -t nfs4 ip:/rfolder /media/lfolder"

여러 번 재부팅하고 다시 시작했지만 여전히 작동하지 않았습니다. 내가 갈 때섬기는 사람사용자가 포함된 폴더,존재하다고객폴더 소유자가 특정 사용자인 것을 확인했습니다.엑스. 내가 갈 때고객사용자와,존재하다섬기는 사람특정 사용자에게서 온다고 하네요.

rpc.idmap 프로세스가 실행 중인지 HTOP로 확인했습니다.섬기는 사람물론. 비록고객실행되지 않는 것 같습니다. 다음을 시도하여 수동으로 서비스를 시작하십시오.고객방금 IDMAP을 실행하려면 nfs-kernel-server 종속성이 필요하다는 오류 메시지를 받았습니다. 그래서 설치했어요고객측면에서는 이제 rpc.idmap 프로세스가 두 곳 모두에서 실행 중입니다.고객그리고섬기는 사람. 재부팅했는데 문제가 남아있습니다.

여기서 무슨 일이 벌어지고 있는지 아시나요? 아니면 올바르게 구성하는 방법은 무엇입니까?

답변1

sec=sysKerberos 대신 기본 AUTH_SYS 인증(마운트 옵션)을 사용하여 마운트에 NFSv4 ID 매핑을 사용할 때 주의해야 할 몇 가지 사항이 있습니다.

노트:AUTH_SYS사용자/그룹 이름만 변환하려면 idmapping을 사용하십시오 . 권한은 여전히 ​​로컬 UID/GID 값을 기준으로 확인됩니다. 사용자 이름 사용 권한을 얻는 유일한 방법은 Kerberos를 사용하는 것입니다.

최근 커널에서는 서버만 rpc.idmapd를 사용합니다.man rpc.idmapd). idmap을 사용할 때 사용자 이름은 다음으로 시작됩니다.사용자@도메인체재. 도메인 이름이 구성되지 않은 경우/etc/idmapd.conf, idmapd는 시스템의 DNS 도메인 이름을 사용합니다. idmap이 사용자를 올바르게 매핑하려면 클라이언트와 서버의 도메인 이름이 동일해야 합니다.

둘째, 커널은 sec=sysNFSv4 마운트에 대한 ID 매핑을 비활성화합니다.기본적으로. 매개변수를 nfs4_disable_idmappingfalse로 설정하면 마운트된 ID 매핑이 활성화됩니다 sec=sys.

서버에서:

echo "N" > /sys/module/nfsd/parameters/nfs4_disable_idmapping

그리고 클라이언트에서는:

echo "N" > /sys/module/nfs/parameters/nfs4_disable_idmapping

nfsidmap -c마운트된 NFSv4 파일 시스템에 변경 사항이 표시되도록 하려면 클라이언트에서 idmap 캐시를 지워야 합니다 .

이러한 변경을 수행하려면영구, 구성 파일 생성/etc/modprobe.d/,

존재하다섬기는 사람( modprobe.d/nfsd.conf):

options nfsd nfs4_disable_idmapping=N

존재하다고객( modprobe.d/nfs.conf):

options nfs nfs4_disable_idmapping=N

답변2

이는 잘 알려져 있고 문서화된 동작입니다. 서버측과 클라이언트측에서 동일한 uid파일을 공유하는 사용자가 다른 경우나타날거야소유자가 다릅니다.

파일을 공유하는 것 외에도 동일한 파일 시스템을 공유하는 모든 시스템에서 동일한 ID를 가진 사용자를 매핑하는 데 주의하는 것이 좋습니다.

이 작업을 수동으로 수행하거나 최소한의 자동화/스크립팅 시스템을 사용하거나 더 나은 방법으로는 LDAP 사용과 같은 중앙 집중식 인증을 설정할 수 있습니다. 바라보다OpenLDAP를 사용한 중앙 집중식 인증

관련 정보