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

Я являюсь пользователем (не 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 `find lib / -name * .swp` без find?
  • find - exec rm vs -delete
  • команды оболочки для проверки и создания директории
  • Почему rm управляет непризнанным флагом w в AIX?
  • Как удалить все файлы из wtihin определенного каталога, кроме дочернего каталога этого каталога?
  • Не может rm-файл, потому что он не существует?
  • Предотвращение удаления папок с псевдонимом system / shell aliased
  • "Rm -rf Filename.iso" Разрешение отклонено
  • Когда мы делаем rm -rf *, почему мы не удаляем. а также ..?
  • логика удаления файлов, где пользователь не имеет права писать
  • Не удалось удалить $ sign named с помощью linux?
  • Interesting Posts

    AMD APU Linux-дистрибутив

    CoreOS не может вытащить контейнер для докеров

    Каков наилучший способ скопировать файлы из файловой системы ext3 в NTFS и сохранить права собственности и разрешения?

    Является ли адрес «computer: ///» только что-то символическим или его можно использовать где-то?

    Недавно установленные приложения отсутствуют в $ PATH

    Как найти и заменить в одном поле на основе значения в другом поле?

    Легкие многофункциональные альтернативы OpenOffice и LibreOffice

    Можно ли создавать псевдонимы, которые влияют на услуги, начиная?

    Сценарий Bash не работает как cronjob

    Разный шрифт в Linux Mint KDE влияет на поиск Google и Gmail: почему и как настроить?

    armhf PWM question: в чем разница между "epwmss" и "ehrpwm"

    Получить пары линий и умножить

    Измените значение xml uttribut документа xml с помощью селектора

    Звук Fedora OS не воспроизводится через проектор через кабель HDMI

    Сравните два файла: строки, присутствующие в одном, а не в другом, по одному столбцу

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