Як створити посилання на каталог лише для читання?


18

Один із моїх сценаріїв динамічно створює подібне посилання так:

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

Як я можу зробити так, щоб доступ через посилання був доступним лише для читання?

Відповіді:


18

Ви можете створити кріплення для прив’язки лише для читання .

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

Так, це потрібно зробити в два етапи в ядрах після ядер Linux 2.6.25 (для цього див. Посилання вище).

Або, як варіант /etc/fstabпрямого прикладу ref :

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

За будь-якого підходу, прив’язане кріплення живе в шарі віртуальної файлової системи (VFS), тому це не характерно для будь-якої файлової системи, і ви дійсно нічого не монтуєте. Отже, в основному це створює для вас своєрідне символічне посилання, але це не відображається як таке.

І щоб відповісти на коментар нижче про втрату даних ... ні, ці інструкції не видаляють жодні файли. Якщо у вас є файли на шляху до пункту призначення, це кріплення лежить над цим. Просто відключіть, щоб мати можливість перелічити ваші файли на шляху до файлової системи під ним. Навіть краще; загалом, уникайте встановлення на вершину не порожнього шляху призначення.


1
Будь обережний. Виконуючи ці кроки, це видалило весь мій каталог резервних копій і зробило його непридатним для запису моїм демоном резервного копіювання.

чи можете ви надати це рішення як запис fstab?
Throoze

@Throoze Там ви йдете;)
gertvdijk

Команда повторного перерахування, ймовірно, повинна бути такою: mount -o bind,remount,ro /path/to/destДивіться lwn.net/Articles/637501 з цього ж потоку.
анонім

mount -o remount,ro /path/to/destдає мені таку помилку: mount: mount point is busy.@gertvdijk
alper

2

для монтажу зв'язування лише за допомогою однієї команди:

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

відключити

umount /path/to/dest/
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.