2

Я использую Ubuntu 10.04. У меня есть большой каталог (много подкаталогов) и файлы данных, которые я часто использую в своих скриптах. Я хотел бы убедиться, что я никогда не удаляю / не перезаписываю / не изменяю никакие файлы / каталоги в этом супер-каталоге.

Как я могу это сделать?

4 ответа4

3

В основном заказывается за счет уменьшения защиты и повышения удобства:

  • Храните файлы на физически доступном только для чтения носителе, таком как 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.

2

Нет никакого реального способа, потому что несмотря ни на что, вы всегда сможете удалить их в конце.

Тем не менее, вы можете попробовать с правами доступа к файлам. Щелкните правой кнопкой мыши каталог и установите доступ к папке «Доступ к файлам» и установите доступ к файлам только для чтения. После этого нажмите «Применить разрешения к вложенным файлам». Таким образом, вам придется вручную сбросить этот параметр, когда вы решите удалить файлы в этом каталоге.

1

Вы можете rsync каталог на другой и использовать --link-dest для создания жестких ссылок, чтобы они не занимали лишнего места.

Хорошая статья - Time Machine для каждого Unix.

0

Человеку свойственно ошибаться. Однажды я удалил важный файл, потому что только что проснулся и все еще был сонным (без похмелья) :) К счастью, это произошло спустя много времени после того, как я научился некоторым трюкам, которые помогают смягчить негативное влияние таких глупых действий. Вот они:

  • всегда делайте резервные копии, периодически проверяйте, что резервные копии действительно содержат то, что они должны содержать, чтобы избежать ситуации, когда вы теряете файл, попробуйте восстановить его из резервной копии и обнаружить, что по какой-то причине он не содержится в резервной копии
  • использовать контроль версий
  • используйте систему учета, такую как inotify, она поможет вам отслеживать изменения в файловой системе

После этого инцидента я установил дополнительное непреклонное правило: «Никогда не прикасайтесь к компьютеру, когда он еще спит».

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .