NFS all_squash와 동일

NFS all_squash와 동일

클라이언트에서 동일한 파일 시스템을 여러 번 마운트해야 하는 특이한 요구 사항이 있지만, 각 마운트는 기본 디렉터리 및 파일의 그룹 권한을 기반으로 기본 데이터에 대한 다른 보기를 제공합니다.

나는 과거에 NFS를 all_squash 및 anongid /etc/exports 옵션과 함께 사용하여 사용자가 특정 그룹 ID를 가진 것처럼 특정 마운트를 표시하도록 한 적이 있습니다. 사용자 그룹에 대한 액세스를 적용하여 기본 파일 시스템에 대한 액세스를 효과적으로 필터링합니다.

안타깝게도 파일 시스템이 Amazon EFS(실제로는 NFS 서버이지만 구성 옵션이 없음)가 되기 때문에 이 경우에는 사용할 수 없습니다.

나는 binfs를 보았고 이것은 강제 그룹 옵션을 제공하지만 클라이언트가 특정 그룹을 갖도록 강요하는 대신 모든 파일이 특정 그룹을 갖도록 강제하여 변경되지 않은 파일을 볼 수 있기 때문에 그것은 내가 원하는 것과 반대입니다.

filterfs라는 항목에 대한 언급을 본 적이 있지만 오랫동안 사용되지 않은 것 같습니다.

사용자 그룹을 일시적으로 효과적으로 변경하여(사용자가 웹 서버 데몬이므로 sudo를 사용하지 않고) 단일 사용자의 파일 시스템에 대한 필터링된 보기를 얻는 방법을 아는 사람이 있습니까?

답변1

올바른 방향을 알려준 @sourcejedi에게 감사드립니다.

원래 NFS 설정에서는모든 호박데몬 사용자가 특정 그룹을 갖고 있는 것처럼 보이도록 만드는 데 사용됩니다(제공:아논지드). 이 예에서는 그룹 ID가 601이라고 가정합니다.보다따라서 원래 파일 시스템은 마운트된 파일 시스템을 기반으로 파일/디렉토리에 대한 권한을 적용할 수 있습니다.아논지드601로. 데몬 사용자의 실제 그룹 권한에 관계없이 권한은 NFS 마운트 수준에서 평가되는 것으로 보입니다. 다른 방법을 사용하여 동일한 파일 시스템에 다른 NFS 마운트모든 호박설정은 마치 사용자가 다른 그룹 멤버십을 갖고 있는 것처럼 파일의 다양한 보기를 효과적으로 표시합니다.

사용바인드 파일 시스템--매핑약간 다른 설정으로도 동일한 결과를 얻을 수 있습니다. 예제 구성은 기본 파일 시스템에서 그룹 ID 601을 갖는 모든 파일/디렉터리가 마운트된 파일 시스템에서 그룹 ID 599를 갖는 것처럼 보이도록 파일 시스템을 바인딩합니다.

bindfs --map=@601/@599 --create-for-group=601 --create-for-user=600 --create-with-perms='u=rwD:g=rwD:o=' $FS_ROOT $MOUNT_ROOT/view601

이제 데몬에 파일을 나열할 때 $MOUNT_ROOT/view601사용자는 그룹 599 대신 그룹 601의 모든 파일을 볼 수 있습니다. 그룹 gid 599의 멤버십을 데몬에 제공하면 설치에 따라 권한을 다시 효과적으로 적용할 수 있습니다. 다른 마운트가 gid 602를 599로 매핑하는 경우 원래 그룹 602(601 대신)가 이제 599로 매핑되어 데몬 프로그램에서 사용할 수 있게 되면 동일한 기본 파일 시스템의 파일을 동일한 사용자가 사용할 수 있습니다.

관련 정보