Estou usando o FreeBSD com as seguintes estruturas de sistema de arquivos, e não entendo o comportamento anômalo em pontos de montagem:
/mnt/myfs/myzfspool/dataset1
. /mnt/myfs/data/mountpoints
e /mnt/myfs/data/links
. mount_nullfs -o nfsv4acls /mnt/myfs/myzfspool/dataset1 /mnt/myfs/data/mountpoints/myfs_1
/mnt/myfs/data/links
apontando para esse ponto de montagem ( ln -sv /mnt/myfs/data/mountpoints/myfs_1 /mnt/myfs/data/links/mysymlink
) /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.
\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"?