O ponto de montagem é travável, mas o link simbólico para o ponto de montagem não é, no Samba?

0

Estou usando o FreeBSD com as seguintes estruturas de sistema de arquivos, e não entendo o comportamento anômalo em pontos de montagem:

  1. Eu tenho um sistema de arquivos ZFS montado em /mnt/myfs/myzfspool/dataset1 .
  2. Eu tenho diretórios comuns em /mnt/myfs/data/mountpoints e /mnt/myfs/data/links .
  3. Eu crio uma montagem nullfs para trazer o conjunto de dados do ZFS ao compartilhamento do Samba (para evitar problemas com links largos) usando mount_nullfs -o nfsv4acls /mnt/myfs/myzfspool/dataset1 /mnt/myfs/data/mountpoints/myfs_1
  4. Eu crio um symlink dentro de /mnt/myfs/data/links apontando para esse ponto de montagem ( ln -sv /mnt/myfs/data/mountpoints/myfs_1 /mnt/myfs/data/links/mysymlink )
  5. Eu uso o Samba para compartilhar /mnt/myfs (como \ SVR \ myfs ), /mnt/myfs/data (como \ SVR \ data ) e /mnt/myfs/data/links (como < strong> \ SVR \ links ) em toda a LAN, para fins de teste. O Samba é configurado para permitir que os links simbólicos sejam seguidos por padrão. ( siga symlinks = sim, links largos = não )

A anomalia é esta:

Se eu acessar o compartilhamento \SVR\data e, dentro dele, navegar para \SVR\data\mountpoints\myfs_1 , ele poderá ser navegado. Eu tenho acesso completo ao sistema de arquivos ZFS montado.

Mas se eu acessar o mesmo compartilhamento e dentro dele, navegue para /mnt/data/links/mysymlink , que é um link simbólico para o mesmo diretório, no mesmo sistema de arquivos acima, ele não me permitirá navegar dentro do conteúdo - log smbd mostra claramente que o erro é symlink fora do caminho do sistema de arquivos.

Eu não entendo porque o comportamento do Samba é diferente. No primeiro caso, o compartilhamento contém um ponto de montagem nullfs no compartilhamento e pode ser atravessado; no segundo caso, o compartilhamento contém um link simbólico para o mesmo ponto de montagem nullfs dentro do compartilhamento, mas não pode ser atravessado. Em nenhum momento o symlink é atravessado, e se é, então é porque o mount está sendo atravessado, então deve ser travado nas duas vezes nesse caso.

  • Como informações de depuração possivelmente relevantes, se eu navegar usando o \SVR\myfs share (que é pai para o conjunto de dados e links, em seus locais "verdadeiros"), navegue para /mnt/myfs/data/links/mysymlink em vez de /mnt/data/links/mysymlink funciona nos dois casos, o que confirma as informações de log, que é um problema de passagem de link simbólico do Samba e não uma permissão ou outro problema.

Por que o Samba permite que uma pessoa atravesse, mas não a outra, e qual é a "correção fácil"?

    
por Stilez 26.02.2018 / 18:07

0 respostas