Jeden z moich skryptów dynamicznie tworzy takie dowiązanie symboliczne:
ln -s /home/hosting/projects/images /home/hosting/projects/demo/images
Jak mogę to zrobić, aby dostęp przez link był tylko do odczytu?
źródło
Jeden z moich skryptów dynamicznie tworzy takie dowiązanie symboliczne:
ln -s /home/hosting/projects/images /home/hosting/projects/demo/images
Jak mogę to zrobić, aby dostęp przez link był tylko do odczytu?
Możesz utworzyć montowanie tylko do odczytu w trybie bind .
mount --bind /path/to/source/ /path/to/dest/
mount -o bind,remount,ro /path/to/dest
Tak, należy to zrobić w dwóch krokach w jądrach po jądrach Linuksa 2.6.25 (dlaczego link znajduje się powyżej).
Lub, alternatywnie, jako /etc/fstab
przykład linii ref :
/path/to/source/ /path/to/dest/ none bind,ro
W obu przypadkach montowanie powiązań występuje w warstwie wirtualnego systemu plików (VFS), więc nie jest to specyficzne dla żadnego systemu plików, ani też niczego nie „montujesz”. Zasadniczo tworzy to dla ciebie coś w rodzaju dowiązania symbolicznego, ale nie pojawia się ono jako takie.
Aby odpowiedzieć na poniższy komentarz dotyczący utraty danych ... nie, te instrukcje nie usuwają żadnych plików. Jeśli masz pliki obecne na ścieżce docelowej, to montowanie będzie się nad tym leżało. Po prostu odmontuj, aby móc wyświetlić listę plików na ścieżce w systemie plików poniżej. Nawet lepiej; Ogólnie rzecz biorąc, unikaj montażu na niepustej ścieżce docelowej.
mount -o bind,remount,ro /path/to/dest
Zobacz lwn.net/Articles/637501 z tego samego wątku.mount -o remount,ro /path/to/dest
wyświetla mi następujący błąd:mount: mount point is busy.
@gertvdijkaby zamontować bind tylko do odczytu za pomocą jednego polecenia:
odmontować
źródło