В основном заказывается за счет уменьшения защиты и повышения удобства:
Храните файлы на физически доступном только для чтения носителе, таком как CD-ROM.
Храните файлы в отдельной файловой системе, которую вы монтируете только для чтения.
Если вы являетесь администратором, создайте другого пользователя и сделайте эти файлы принадлежащими этому другому пользователю.
Используйте FUSE bindfs (пакетные привязки Ubuntu bindfs
), чтобы создать представление дерева каталогов, доступное только для чтения, и наведите сценарии на это представление только для чтения:
bindfs -p a-w /path/to/actual/tree /path/to/readonly/view
myscript -d /path/to/readonly/view
Сделайте дерево каталогов доступным только для чтения с помощью chmod a-w /path/to/tree
.
Создайте копию дерева с жестко связанными файлами и укажите свой сценарий на копию. Тогда ваши сценарии могут по-прежнему изменять существующие файлы, но если они создают, удаляют или заменяют файлы, это повлияет только на копию.
cp -al /path/to/actual/tree /path/to/readonly/view
myscript -d /path/to/readonly/view
Я рекомендую вам использовать bindfs. Единственная причина, по которой я бы сделал что-либо еще, учитывая ваши требования, - это если он недоступен.
Если вы хотите, чтобы сценарии могли записывать в дерево каталогов, но не влияя на фактические файлы, вы могли бы использовать файловую систему union, например funionfs или unionfs-fuse.