Задать вопрос

Как запретить удаление папки в Linux?

У меня есть папка Documents/Keychains, и я не хотел бы случайно её или её содержимое удалить, но при этом мне нужно иметь права на чтение и запись (чтобы не вводить каждый раз ДВА пароля). Есть ли аналог +i, но на удаление?
  • Вопрос задан
  • 380 просмотров
Подписаться 1 Простой 13 комментариев
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    DevOps для эксплуатации и разработки
    7 месяцев
    Далее
  • Яндекс Практикум
    Go-разработчик с нуля
    8 месяцев
    Далее
  • Яндекс Практикум
    Фулстек-разработчик
    16 месяцев
    Далее
Решения вопроса 1
@SunTechnik
Как уже в комментариях писали - правильнее делать бэкап.

Задачу можно решить, если на папку выставить атрибут immutable
chattr +i Documents/Keychains

После этого в данной папке нельзя будет ни создать новые файлы ни удалить существующие.

Защита мнимая, так как можно затереть содержимое самого файла.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
xotkot
@xotkot
хорошо есть и хорошо весьма
как лайт вариант можно рядом(ну или в той же файловой системе) создать каталог с жесткими ссылками на файлы
cp -lrT dir1 .dir1

наглядный пример
$ mkdir dir1
$ echo 111 > dir1/file1
$ echo 222 > dir1/file2
$ cp -lrT dir1 .dir1
$ tree -a --metafirst --inodes --noreport dir1 .dir1
[    292]  dir1
[    293]  ├── file1
[    294]  └── file2
[    295]  .dir1
[    293]  ├── file1
[    294]  └── file2
$ echo 333 > dir1/file3
$ rm dir1/file2
$ cp -lrT dir1 .dir1
$ tree -a --metafirst --inodes --noreport dir1 .dir1
[    292]  dir1
[    293]  ├── file1
[    296]  └── file3
[    295]  .dir1
[    293]  ├── file1
[    294]  ├── file2
[    296]  └── file3

"копия" создаётся почти мгновенно, место не занимает, удалённые файлы остаются
если нужно почистить от удалённых и уже не нужных файлов то просто пересоздать директорию
$ rm -rf .dir1 && cp -lrT dir1 .dir1
$ tree -a --metafirst --inodes --noreport dir1 .dir1
[    292]  dir1
[    293]  ├── file1
[    296]  └── file3
[    297]  .dir1
[    293]  ├── file1
[    296]  └── file3
Ответ написан
Комментировать
@punhin
Фанат it-технологий. Не волшебник, но учусь.
Как вариант, использовать файловую систему btrfs для той папки, которую нужно защитить от удаления. Эта файловая система умеет откатываться к любому предыдущему состоянию. Создаём небольшой раздел на диске (не впритык к размеру хранимых файлов, конечно же, если нам их предстоит редактировать - нужен запас на внесение изменений), форматируем его в этом формате, монтируем в нужную папку. Работаем. Если вдруг что-то испортили - откатываемся к предыдущей рабочей версии. Если нужно во что бы то ни стало сохранить какой-то конкретный вариант файла, можем пойти ещё дальше: до монтирования btrfs в папку, защищаемую от удаления, скидываем всё, что хотим сохранить в неизменном состоянии, и только после этого монтируем (в неё же!) раздел диска, размеченный в btrfs - его всегда можно отмонтировать (и тогда мы получим доступ к файлам в папке), а пока он смонтирован, исходное содержимое папки полностью скрыто и надёжно защищено.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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