서로 다른 서버와 NFS 폴더 간에 사용자 권한을 공유하는 방법은 무엇입니까?

서로 다른 서버와 NFS 폴더 간에 사용자 권한을 공유하는 방법은 무엇입니까?

Ubuntu 20을 실행하는 3개의 다른 서버가 있습니다. 그 중 하나는 NFS 호스트로 구성되고 나머지 두 개는 클라이언트로 구성됩니다. 클라이언트는 NFS 공유 폴더를 마운트하고 해당 폴더에 쓸 수 있습니다 sudo touch foo.txt.

클라이언트 서버에는 웹사이트를 미러링하는 wget 프로세스가 있습니다. 두 개의 클라이언트 서버가 wget에서 폴더로 파일을 출력하도록 하고 싶습니다 /nfs/shared. 두 서버 모두에서 프로세스는 다음과 같이 실행됩니다 www-data user wget (...) -o /nfs/shared.

으로 인해 어떤 서버도 이 폴더에 쓸 수 없습니다 permission denied. 여기에서 다른 질문을 읽으면 UUID권한 마스크가 제대로 작동하려면 내 사용자에게 동일한 권한이 있어야 하는 것 같습니다 .

내 질문:

  • n모든 사용자가 글을 쓸 수 있도록 서버에서 일반 사용자 목록을 어떻게 유지합니까 /nfs/shared?

답변1

이를 수행하는 방법에는 여러 가지가 있지만 가장 일반적인 방법은 다음과 같습니다.

  • 수동으로 uid 변경 및/또는 /etc/{passwd|shadow|group} 복사 - 권장되지 않음 - 수행 중인 작업을 알고 있더라도 어려울 수 있음
  • 모든 호스트에서 공통 GID를 사용하여 그룹을 만들고 해당 그룹에 대한 권한을 설정합니다(여전히 해결 방법이지만 uid를 동기화하는 것보다 훨씬 덜 번거롭습니다).
  • NIS / NIS+ / Yellow Pages - 첫 번째 접근 방식에 대한 통합/자동화된 접근 방식입니다. 이는 이제 점차 과거의 일이 되어가고 있습니다. 도구는 계속 사용할 수 있지만 문서에 일부 문제가 예상됩니다.
  • LDAP - 설정할 PITA이지만 일단 올바르게 구성하면 쉽게 시작할 수 있습니다.

상황과 저장소가 다른 목적으로 사용되는 방식에 따라 SMB를 사용하면 이 문제를 피할 수 있습니다.

관련 정보