Один из моих сценариев динамически создает символическую ссылку примерно так:
ln -s /home/hosting/projects/images /home/hosting/projects/demo/images
Как сделать так, чтобы доступ по ссылке был только для чтения?
источник
Один из моих сценариев динамически создает символическую ссылку примерно так:
ln -s /home/hosting/projects/images /home/hosting/projects/demo/images
Как сделать так, чтобы доступ по ссылке был только для чтения?
Вы можете создать привязку только для чтения .
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), так что это не относится ни к какой файловой системе, и вы ничего не «монтируете». Так что, по сути, это создает своего рода символическую ссылку для вас, но это не так.
И чтобы ответить на комментарий ниже о потере данных ... нет, эти инструкции не удаляют файлы. В случае, если у вас есть файлы по пути назначения, это монтирование будет лежать поверх этого. Просто размонтируйте, чтобы иметь возможность перечислять ваши файлы по пути в файловой системе внизу. Даже лучше; в общем, избегайте монтирования поверх непустого пути назначения.
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монтировать bind только для чтения одной командой:
размонтировать
источник