Предотвратите случайное удаление файла

Я являюсь пользователем (не root) на сервере RHEL. Я хочу, чтобы иметь возможность продолжить редактирование файла в моем домашнем каталоге, но установить разрешение, чтобы я случайно не удалил его. Это возможно? Могу ли я сделать это, поэтому мне нужно получить вторичное подтверждение перед его удалением (например, «Вы уверены? Y / n»)?

5 Solutions collect form web for “Предотвратите случайное удаление файла”

Вы удаляете файл, отменяя его на каталог, на который он ссылается (файл также можно ссылаться в нескольких каталогах или несколько раз (с разными именами) в один каталог, это то, что мы обычно называем жесткими ссылками).

Тогда соответствующие разрешения не относятся к файлу, а к каталогу, к которому он привязан.

Поэтому, если вы поместите его в каталог, у которого нет доступа на запись:

 mkdir important-files echo test > important-files/myfile chmod aw important-files # make the directory not writable 

Тогда вы не сможете удалить myfile , но вы все равно сможете изменить файл до тех пор, пока он доступен для записи.

Если вы создаете подкаталог и удаляете доступ к записи от себя, вы не сможете удалить какие-либо файлы в каталоге, но вы все равно можете их изменить.

 $ mkdir dir ; echo something > dir/foo ; chmod aw dir $ $EDITOR dir/foo $ rm -rf dir/ rm: cannot remove 'dir/foo': Permission denied 

Хотя вы все равно можете уничтожить или усечь содержимое во время его редактирования, лучшим вариантом будет создание резервных копий. Ваш системный администратор мог (должен?) Брать резервные копии в каталог, который вы не можете удалить, но дешевое симуляция может быть выполнена в основном по той же идее, что и выше: создать каталог и создать сценарий, который временно восстанавливает разрешение на запись, делает резервные копии в каталог и снова разрешает разрешение на запись.

Я хочу, чтобы иметь возможность продолжить редактирование файла в моем домашнем каталоге, но установить разрешение, чтобы я случайно не удалил его. Это возможно?

Короче говоря, не для файла с обычными разрешениями Unix. Возможно, ACL могут обеспечить такой мелкозернистый контроль?

Могу ли я сделать это, поэтому мне нужно получить вторичное подтверждение перед его удалением (например, «Вы уверены? Y / n»)?

Общим обходным путем для этого является установка псевдонима для rm в rm -i , например, в ~/.bash_aliases (если поддерживается вашим дистрибутивом), ~/.bashrc или даже глобально в /etc/bashrc (который может быть перезаписан обновлениями пакет bash , поэтому лучше не использовать эту опцию):

 $ cat .bash_aliases alias rm='rm -i' ... 

Я бы использовал hardlinks с резервной папкой, где я бы сохранил жесткую ссылку на каждый файл, который я хочу сохранить undeletable, на всякий случай, если это произойдет. Если вы удалите файл, вы можете создать жесткую ссылку из резервной копии в свою домашнюю папку. Это не идеальное решение, но относительно безопасное.

 $ mkdir filebak $ echo content >file $ ln file filebak/file $ rm file $ ln filebak/file file $ cat file content 

Это работает только для одного файла, указанного в переменной myFile.

 # # Wrapper around /bin/rm to prevent accidental `rm myFile` # rm (){ local rm=$(which rm) myFile="important.txt" if [ -f "$myFile" ]; then $rm -iv "$myFile" else $rm "$@" fi } 

Не забудьте добавить это в / etc / profile, затем ./etc/profile .

  • rm: не удается удалить `/../...v ': разрешение отклонено
  • Как объединить '-size` и' -exec rm 'в поиске?
  • Найти файлы дубликатов файлов и заглавные буквы rm
  • Удалите файлы и каталоги, даже если они не пусты, кроме некоторых каталогов
  • удалить вложенные папки и файлы, не удаляя родительскую папку и дочернюю папку?
  • Как удалить файлы, если числовая часть их имени больше заданного числа?
  • Как удалить каталог и все его содержимое?
  • Просмотр списка удаленных файлов
  • Предотвращение удаления папок с псевдонимом system / shell aliased
  • Использование find для поиска каталога и удаления его подкаталогов
  • удалить старый файл в каталоге
  • Interesting Posts

    rsync: как исключить самый верхний каталог

    Правильное имя домена для серверной настольной машины

    Прослушать атрибуты RADIUS, отправленные одноранговому узлу

    Emacs: ошибка при вызове функции в hook

    Для каких функций ядра Linux требуется os-prober для установки Windows 8?

    Пользователь, не являющийся пользователем Samba, не может писать для совместного использования

    Как выполнить подстановку команд до расширения скобки?

    ухудшение Wi-Fi после времени, устранение неполадок

    Как узнать, можно ли использовать IRQ-значение

    Установите липкий бит по умолчанию для новых каталогов через ACL?

    Неиспользует ли уведомление об увольнении, когда начинается запись или когда она завершена?

    как удалить некоторые из строк в первом файле на основе информации из второго файла?

    mv-файл без права на запись в исходный файл

    LVM заполняет все оставшееся место на диске, но недостаточно места на корневом разделе

    Запуск 64-битной ОС, поиск всех 32-битных программ в системе

    Linux и Unix - лучшая ОС в мире.