Mam bardzo ważny plik, z którego korzysta aplikacja w moim miejscu pracy. Muszę się upewnić, że nie jest on w ogóle usuwany. Jak to zrobić?
Mam bardzo ważny plik, z którego korzysta aplikacja w moim miejscu pracy. Muszę się upewnić, że nie jest on w ogóle usuwany. Jak to zrobić?
Odpowiedzi:
Tak, możesz zmienić atrybuty pliku na „tylko do odczytu”.
Polecenie to:
chattr +i filename
I aby to wyłączyć:
chattr -i filename
Od man chattr
:
Pliku z
i
atrybutem nie można modyfikować: nie można go usunąć ani zmienić jego nazwy, nie można utworzyć łącza do tego pliku i nie można zapisać danych w pliku. Tylko superużytkownik lub proces posiadający tęCAP_LINUX_IMMUTABLE
zdolność może ustawić lub usunąć ten atrybut.
chflags schg
Nagraj na płytę CD. Włóż dysk CD do napędu CD-ROM i stamtąd przejdź do niego.
Przykład:
# 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
mount -o remount,rw readonlyfolder/ && rm readonlyfolder/permanent.txt
squashfs
lub cramfs
które są skompresowane i tylko do odczytu. Potrzebuje specjalnego narzędzia do zbudowania systemu plików.
Linux ma tak zwaną opcję bind-mount , która jest dość potężną i przydatną funkcją, aby wiedzieć :
% 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
- tutaj jest wykonywany sam plik bind-mount (tak, możesz to zrobić w systemie Linux), a następnie jest on ponownie montowany w trybie R / O. Oczywiście można to zrobić również w katalogu.
Powinieneś również utworzyć wiele twardych linków do pliku. Powinny one znajdować się w różnych lokalizacjach, do których zwykli użytkownicy nie mają dostępu.
W ten sposób, nawet jeśli uda im się zastąpić twoją ochronę chattr, dane pozostaną i możesz łatwo przywrócić je tam, gdzie ich aplikacja szuka.
Inni odpowiedzieli na twoje pytanie tak, jak je zadałeś. Jak wspomniano w komentarzu @Sven, ogólne rozwiązanie pytania: „Jak upewnić się, że nigdy nie stracę pliku?” jest utworzenie kopii zapasowej pliku. Zrób kopię pliku i przechowuj go w wielu miejscach. Ponadto, jeśli plik jest niezwykle ważny, a Twoja firma ma zasady tworzenia kopii zapasowych ważnych danych w usłudze tworzenia kopii zapasowych, możesz rozważyć włączenie tego pliku do usługi.
Na Linuksem niezmienne flaga jest obsługiwana tylko w niektórych rodzajach systemu plików (większość rodzimych, takich jak te ext4
, xfs
, btrfs
...)
W systemach plików, w których nie jest on obsługiwany, inną opcją jest podłączenie pliku do samego siebie w trybie tylko do odczytu. Należy to zrobić w dwóch krokach:
mount --bind file file
mount -o remount,bind,ro file
Trzeba to jednak zrobić przy każdym uruchomieniu, na przykład przez /etc/fstab
.
umount
plik uzyska ponownie uprawnienia do zapisu
W komentarzu do odpowiedzi Kevina Jerry wspomina:
Oczywiście plik jest regularnie archiwizowany, chciałem tylko kolejnej warstwy ochrony przed użytkownikami, którzy czasami pracują na urządzeniu z uprawnieniami użytkownika root. -
Zakładam, że nie możesz zmienić tej praktyki, ponieważ jest to naprawdę zły pomysł.
Wszystkie sugestie dotyczące korzystania z urządzenia tylko do odczytu wiążą się z tym samym problemem - dzięki temu PITA może wprowadzać uzasadnione zmiany w razie potrzeby. W przypadku dysku, który można zablokować, takiego jak karta SD, możesz napotkać problem, że nagle jesteś narażony na niebezpieczeństwo, gdy odblokujesz go, aby wprowadzić zmiany.
Zamiast tego zaleciłbym skonfigurowanie innej maszyny jako serwera NFS i udostępnienie katalogu z ważnymi plikami na komputerach, na których użytkownicy rootują. Udostępnij montaż jako tylko do odczytu, aby maszyny z użytkownikami, którym nie ufasz, nie mogły wprowadzać żadnych modyfikacji. Gdy musisz wprowadzić zmiany zgodnie z prawem, możesz połączyć się z serwerem NFS i tam wprowadzić zmiany.
Używamy tego w naszych serwerach WWW, aby udany exploit przeciwko serwerowi WWW nie był w stanie wstawić ani zmienić żadnych plików, które serwer następnie odsunąłby, ani zmienić konfiguracji.
Pamiętaj, że można to pominąć w ten sam sposób, w jaki wszystkie związane z punktem montowania mogą być:
Dlaczego nie stworzyć obrazu ISO 9660, który z założenia jest tylko do odczytu?
Zamontuj obraz ISO, a będzie on wyglądał jak dysk CD-ROM, ale z wydajnością dysku twardego, a pliki na zamontowanym obrazie będą tak samo bezpieczne przed usunięciem, jak pliki na fizycznym dysku CD-ROM.
Pomysł wypalenia wrażliwego pliku na CD i uruchomienia go z CD-ROMu jest interesujący, zakładając, że ustawienie niezmiennego bitu na pliku nie jest wystarczające.
Istnieją potencjalne negatywne problemy z uruchamianiem go z fizycznego dysku CD, w tym wydajność (napędy CD-ROM są znacznie wolniejsze niż dyski twarde lub dyski SSD). Istnieje prawdopodobieństwo, że CD-ROM zostanie usunięty przez osobę o dobrych intencjach i zastąpiony inną płytą, do której potrzebuje dostępu. Istnieje prawdopodobieństwo, że złośliwy podmiot po prostu wyjmie dysk i wyrzuci go do kuchenki mikrofalowej (lub kosza), w ten sposób „usuwając” plik. Istnieje niedogodność związana z posiadaniem dedykowanego sprzętowego napędu CD-ROM tylko dla tego jednego pliku i innych czynników.
Ale PO jasno stwierdził, że głównym celem jest ochrona przed przypadkowym usunięciem, a nie przed złośliwymi czynami, oraz że plik (-y) jest archiwizowany i możliwy do odzyskania w razie wypadku, ale jest wysoce pożądane, aby plik nigdy nie zostać przypadkowo usunięty.
Wygląda na to, że uruchomienie pliku z zamontowanego obrazu ISO spełniłoby to wymaganie.
shred
w tym momencie. Ale chyba, że odmawiasz fizycznego dostępu do maszyny, nadal wydaje się łatwiej po prostu wyjąć fizyczną płytę CD z napędu i wrzucić ją do śmietnika niż odinstalować i zastąpić plik ISO, chociaż jedno z nich jest łatwe. I OP stwierdził, że ważne pliki są regularnie archiwizowane, więc jest to tylko dodatkowy środek zapobiegający przypadkowym uszkodzeniom, a nie złośliwemu psotom.
chattr +i
może pomóc, ale sprawi również, że plik będzie tylko do odczytu (i można go zastąpićchattr -i
), możesz także spróbować zabezpieczyć go za pomocą SELInux itp.