Linux - Существует ли способ предотвратить/защитить файл от того, чтобы быть удаленным даже корнем?

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

89
задан 2 December 2014 в 18:02
9 ответов

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

Команда:

chattr +i filename

И чтобы отключить его:

chattr -i filename

From man chattr :

Файл с атрибутом i не может быть изменен: его нельзя удалить или переименовать, нельзя создать ссылку на этот файл и в файл нельзя записать данные. Только суперпользователь или процесс, обладающий способностью CAP_LINUX_IMMUTABLE , может устанавливать или очищать этот атрибут.

133
ответ дан 28 November 2019 в 19:23

Linux mempunyai pilihan bind-mount yang merupakan ciri yang agak kuat dan berguna untuk diketahui :

%  cd $TMP && mkdir usebindmountluke && cd usebindmountluke
%  echo usebindmountluke > preciousfile
%  sudo mount -B preciousfile preciousfile
%  sudo mount -oremount,ro preciousfile
%  echo sowhat > preciousfile
zsh: read-only file system: preciousfile
%  rm preciousfile
rm: cannot remove ‘preciousfile’: Read-only file system

- apa yang dilakukan di sini adalah fail bind-mount untuk dirinya sendiri (ya, anda boleh melakukannya di Linux), kemudian dipasang semula dalam mod R / O. Sudah tentu ini dapat dilakukan ke direktori juga.

7
ответ дан 28 November 2019 в 19:23

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

Таким образом, даже если им удастся переопределить вашу защиту chattr, данные останутся, и вы сможете легко восстановить их там, где ваше приложение их ищет.

6
ответ дан 28 November 2019 в 19:23

В Linux флаг неизменяемый поддерживается только в некоторых типах файловых систем (большинство собственных, таких как ext4 , xfs , btrfs ...)

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

mount --bind file file
mount -o remount,bind,ro file

Это нужно делать при каждой загрузке, например, через / etc / fstab .

5
ответ дан 28 November 2019 в 19:23

Запишите его на компакт-диск. Вставьте компакт-диск в дисковод для компакт-дисков и откройте его оттуда.

84
ответ дан 28 November 2019 в 19:23

В комментарии к ответ Кевина , Джерри упоминает:

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

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

Все предложения об использовании устройства только для чтения имеют ту же проблему - она ​​делает это PITA, позволяющий вам вносить законные изменения, когда вам это необходимо. В случае блокируемого диска, такого как SD-карта, вы сталкиваетесь с проблемой, что вы внезапно становитесь уязвимыми, когда разблокируете его для внесения изменений.

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

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

Обратите внимание, что это можно обойти так же, как и все связанные с точкой монтирования:

  • Сделать копию защищенного каталога
  • Отключите каталог
  • Переместите копию на место монтирования или создайте символическую ссылку, если на этом монтировании недостаточно места.
3
ответ дан 28 November 2019 в 19:23
  1. Создайте образ файловой системы.
  2. Смонтируйте образ.
  3. Скопируйте файл в смонтированный образ.
  4. Отключите образ и снова подключите его как доступный только для чтения.
  5. Теперь вы не можете удалить его.

Пример:

# dd if=/dev/zero of=readonly.img bs=1024 count=1024
# mkfs.ext2 readonly.img
# mkdir readonlyfolder
# mount readonly.img readonlyfolder/
# echo "can't delete this" > readonlyfolder/permanent.txt
# umount readonlyfolder
# mount -o ro readonly.img readonlyfolder
# cat readonlyfolder/permanent.txt 
can't delete this
# rm readonlyfolder/permanent.txt 
rm: cannot remove `readonlyfolder/permanent.txt': Read-only file system
29
ответ дан 28 November 2019 в 19:23

Другие ответили на ваш вопрос так, как вы его задали. Как отметил @Sven в комментарии, общее решение вопроса: «Как мне убедиться, что я никогда не потеряю файл?» заключается в создании резервной копии файла. Сделайте копию файла и сохраните ее в нескольких местах. Кроме того, если файл чрезвычайно важен и у вашей компании есть политика резервного копирования важных данных с помощью службы резервного копирования, вы можете проверить, включен ли этот файл в службу.

5
ответ дан 28 November 2019 в 19:23

Mengapa tidak membuat gambar ISO 9660, yang hanya boleh dibaca oleh reka bentuk?

Pasang gambar ISO, dan ia akan kelihatan seperti CD-ROM, tetapi dengan prestasi cakera keras,dan fail pada gambar yang dipasang akan sama selamatnya dari penghapusan seperti fail pada CD-ROM fizikal.

Idea untuk membakar fail sensitif ke CD dan menjalankannya dari CD-ROM adalah menarik, dengan anggapan bahawa menetapkan bit yang tidak dapat diubah pada fail dianggap tidak mencukupi.

Terdapat potensi masalah negatif dengan menjalankannya dari CD fizikal, termasuk prestasi (pemacu CD-ROM jauh lebih lambat daripada cakera keras atau SSD). Ada kemungkinan CD-ROM dikeluarkan oleh individu yang baik dan digantikan dengan cakera lain yang mereka perlukan. Ada kemungkinan pihak jahat hanya mengeluarkan cakera dan membuangnya ke dalam microwave (atau tong sampah), sehingga "menghapus" fail anda. Terdapat kesulitan untuk memiliki pemacu CD-ROM perkakasan khusus hanya untuk satu fail itu, dan faktor-faktor lain.

Tetapi OP menjelaskan bahawa tujuan utamanya adalah melindungi daripada penghapusan secara tidak sengaja, bukan dari tindakan jahat, dan bahawa fail yang dimaksudkan disandarkan dan dapat dipulihkan sekiranya berlaku kemalangan, tetapi sangat diinginkan agar fail tersebut tidak pernah dihapus secara tidak sengaja.

Nampaknya menjalankan fail dari gambar ISO yang terpasang akan memenuhi syarat tersebut.

2
ответ дан 28 November 2019 в 19:23

Теги

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