Obrigado ao @sourcejedi por me apontar na direção certa.
Na configuração original do NFS, all_squash foi usado para fazer um usuário do daemon parecer ter um grupo específico (definido por anongid ). Para este exemplo, suponha que o ID do grupo seja 601. Essa exibição no sistema de arquivos original poderia, portanto, impor permissões em arquivos / diretórios baseados no anongid do sistema de arquivos montado 601. As permissões aparecem como eles avaliaram no nível da montagem NFS, independente das permissões de grupo reais do usuário daemon. Outra montagem do NFS no mesmo sistema de arquivos com diferentes configurações all_squash mostra efetivamente uma visão diferente dos arquivos, como se o usuário tivesse uma participação em grupo diferente.
Usando bindfs --map , o mesmo resultado pode ser obtido com uma configuração pouco diferente. Uma configuração de amostra liga um sistema de arquivos de tal forma que quaisquer arquivos / diretórios com o ID de grupo 601 no sistema de arquivos subjacente pareçam ter o ID de grupo 599 no sistema de arquivos montado:
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
Agora, ao listar arquivos em $MOUNT_ROOT/view601
, o usuário daemon vê qualquer arquivo que tenha o grupo 601, em vez de ter o grupo 599. Ao conceder a associação ao daemon do grupo gid 599, as permissões são efetivamente aplicadas novamente com base na montagem. Se uma montagem diferente mapeasse gt 602 a 599, os arquivos no mesmo sistema de arquivos subjacente estariam disponíveis para o mesmo usuário se tivessem originalmente o grupo 602 (em vez de 601) agora mapeado para 599, tornando-os disponíveis para o daemon.