Como criar um link somente leitura para um diretório?

14

Um dos meus scripts cria dinamicamente um link simbólico da seguinte forma:

ln -s /home/hosting/projects/images /home/hosting/projects/demo/images

Como posso fazer com que o acesso por link seja somente leitura?

    
por Elmor 15.01.2013 / 09:58

2 respostas

16

Você pode criar uma montagem de bind somente leitura .

mount --bind /path/to/source/ /path/to/dest/
mount -o remount,ro /path/to/dest

Sim, isso deve ser feito em duas etapas nos kernels após os kernels Linux 2.6.25 (veja o link acima para o porquê).

Ou, como alternativa, como um exemplo de /etc/fstab line ref :

/path/to/source/ /path/to/dest/ none bind,ro

Em qualquer abordagem, uma montagem de bind reside na camada VFS (Virtual Filesystem), portanto, isso não é específico de nenhum sistema de arquivos, nem de 'montar' nada. Então, basicamente, isso está criando um tipo de link simbólico para você, mas isso não aparece como tal.

E para responder ao comentário abaixo sobre perda de dados ... não, essas instruções não removem nenhum arquivo. Caso você tenha arquivos presentes no caminho de destino, essa montagem será colocada sobre isso. Apenas desmonte para poder listar seus arquivos no caminho no sistema de arquivos abaixo. Melhor ainda; em geral, evite montar em cima de um caminho de destino não vazio.

    
por gertvdijk 15.01.2013 / 10:28
0

para montar o bind readonly com um comando:

mount --bind -r /path/to/source/ /path/to/dest/

para desmontar

umount /path/to/dest/
    
por Shimon Doodkin 26.03.2017 / 05:44