сделать резервную копию файла при запуске пользователем rm -f [закрыто]

Вот сценарий:

Мне нужно авторизовать пользователя для выполнения действий в / opt / dev-folder / . Разработчик часто вносит изменения в файл, иногда они заменяют или удаляют исходный файл.

Я назначил привилегии с помощью sudo. Теперь я хочу понять, как сделать автоматическое резервное копирование файла, когда разработчик запускает rm -f имя-файла .

например:

sudo rm -rf file-name.php

в фоновом режиме, он должен делать что-то вроде ниже:

mv file-name.php /backup/

любая идея или лучшая рекомендация будут высоко оценены.

0
задан 17 January 2013 в 20:49
1 ответ

Вы не можете.
(Что ж, вы можете - есть хаки для некоторых файловых систем, например EXT3 Copy on Write , на которые указал Сирекс, но универсального способа сделать это на всех платформах Unix нет.)

Давайте рассмотрим некоторые из них. возможные реализации и проблемы / обходные пути, просто для удовольствия:

  1. Копирование при записи Расширения файловой системы
    Это наиболее надежные, но они требуют, чтобы вы использовали файловую систему с расширением копирования при записи. Реализация варьируется от ОС к ОС (и может быть даже недоступна на вашей целевой платформе), и они занимают много места на диске, храня теневые копии.

  2. Псевдоним rm на что-то еще
    Это отлично работает, пока кто-то не запустит / bin / rm (или не использует другой инструмент, кроме команды rm , чтобы удалить файл: GUI File Explorer, Этот подход, вероятно, сломается, если будет задействовано sudo .

  3. Заменить rm скриптом или пользовательским двоичным кодом
    Хорошая идея, но замена основных системных двоичных файлов обычно плохая Вещь.
    Это может сработать, но вам все равно понадобится что-то, что действительно заставит данные исчезнуть , или вы снова окажетесь в той же лодке, что и вариант (1), поглощающий кучи дискового пространства. Это означает, что либо rm зависает, переименованный во что-то другое, например / bin / realrm (сокращено до случая (2) - кто-то может просто запустить realrm ). Вы можете уменьшить немного, сделав его исполняемым только с правами root) или у вас есть другой процесс очистки.
    Вы можете это сделать, но это много работы.


Мой анализ, приведенный выше, ни в коем случае не является исчерпывающим - с учетом множества проблем контроль версий является лучшим вариантом (поместите важные каталоги под контроль версий. Когда что-то будет удалено, вы всегда можно восстановить, вытащив версию до удаления.)

Еще одна традиционная мера предосторожности против незакрепленных гаек на клавиатуре - это РЕЗЕРВНОЕ КОПИРОВАНИЕ , из которого вы можете восстановить случайно удаленные файлы.

1
ответ дан 4 December 2019 в 21:29

Теги

Похожие вопросы