Один из моих сценариев динамически создает символическую ссылку, например так:
ln -s /home/hosting/projects/images /home/hosting/projects/demo/images
Как сделать так, чтобы доступ по ссылке был только для чтения?
Вы можете создать только для чтения bind-mount .
mount --bind /path/to/source/ /path/to/dest/
mount -o remount,ro /path/to/dest
Да, это должно быть сделано в два этапа в ядрах после ядра Linux 2.6.25 (см. Ссылку выше).
Или, в качестве альтернативы, в качестве примера строки /etc/fstab
ref sup>:
/path/to/source/ /path/to/dest/ none bind,ro
В любом подходе в виртуальной файловой системе живет монтирование bind. слой (VFS), так что это не относится ни к какой файловой системе, и вы ничего не «монтируете». Так что, по сути, это создает своего рода символическую ссылку для вас, но это не проявляется как таковой.
И чтобы ответить на комментарий ниже о потере данных ... нет, эти инструкции не удаляют файлы. В случае, если у вас есть файлы по пути назначения, это монтирование будет лежать поверх этого. Просто размонтируйте, чтобы иметь возможность перечислять ваши файлы по пути в файловой системе внизу. Даже лучше; в общем, избегайте монтирования поверх непустого пути назначения.
для монтирования bind только для чтения с помощью одной команды:
mount --bind -r /path/to/source/ /path/to/dest/
для размонтирования
umount /path/to/dest/