Prática recomendada para vincular-se ao WebDAV, pois o FollowSymLinks não permite mostrar links simbólicos

4

Links simbólicos são uma prática comum no Linux para tornar um recurso (por exemplo, diretório) disponível em outro local, sem ter que manter várias cópias dele. Isto é implementado em muitas aplicações, e. ter uma árvore de recursos e uma árvore com diretórios de usuário: sempre que um usuário tiver a intenção de trabalhar com um determinado recurso, um link simbólico é colocado no diretório ao qual ele ou ela tem acesso. Com permissões suficientes, ele pode trabalhar com o recurso (criar arquivos nele) que pode ser gravado fisicamente em um local diferente, por exemplo, em um dispositivo com espaço suficiente. Isso funciona bem se o usuário acessar seu diretório inicial usando o Samba.

No entanto, existem boas razões para trabalhar com o WebDAV, em vez disso, os problemas de porta são um deles. O problema ao portar tal aplicativo para o WebDAV: o mod_dav do Apache é escrito de forma que links simbólicos não são expostos, não importa se FollowSymLinks está configurado. Esse comportamento é destinado por a comunidade , portanto, um relatório de erros nunca foi abordado.

No entanto, como o comportamento desejado pode ser portado para o WebDAV? Eu tentei usar hard links em vez disso, mas linkar um diretório parece não funcionar. Usar mount pode funcionar, mas não posso estimar o efeito colateral de centenas de montagens. Existe uma opção que eu não vi até agora? Existe uma “melhor prática” conhecida? Ou o WebDAV simplesmente não se encaixa como substituto do Samba?

    
por Paramaeleon 30.11.2012 / 12:09

1 resposta

6

Parece que mount --bind é a solução que eu estava procurando. Existem razões a favor e contra o uso de ln -s vs mount --bind , mas parece ser prática comum montar um dispositivo várias vezes em sistemas linux (até mesmo a montagem de arquivos únicos em outros arquivos é incentivada em man mount ) e parece que a estabilidade do sistema não é seriamente afetada.

A única desvantagem é que, se os pontos de montagem não forem corrigidos, modificando /etc/fstab , eles serão perdidos na reinicialização do servidor.

Mais uma palavra para o WebDAV: houve um internet rascunho (que expirou em média) para estender a especificação do WebDAV para permitir “coleções avançadas”, que também devem oferecer a capacidade de lidar com links. O trabalho foi gasto nessa questão em cerca de 1998-2002, em seguida, o toppic desapareceu silenciosamente. Você pode encontrar várias páginas na internet que o WebDav suporta links simbólicos por meio de coleções avançadas , mas atualmente, este não é o caso . O código fonte atual (v.1.0.3-1.3.6) mod_dav diz:

/* ### for now, only process regular files (e.g. skip symlinks) */
if (S_ISREG(fsctx->info1.finfo.st_mode)) {

Pode-se esperar que o módulo WebDAV do Tomcat 6 possa ser desconhecem os links simbólicos (como, afaik, o conhecimento de tais coisas especiais do sistema de arquivos não foi incorporado ao modelo Java antes da versão 7), mas mostra o mesmo comportamento, portanto, conforme a especificação também.

Por último, um patch de link simbólico patch simbólico para mod_dav-1.0.3-1.3.6 foi publicado, mas você terá que aplicar o patch no código fonte e compilar o módulo você mesmo ... Eu não tentei isso .

    
por 04.12.2012 / 09:18