Chcę, aby plik został zablokowany przed usunięciem, ale nadal jest możliwy do zapisu. Jak mam to zrobic?
Ten plik to wolumin Truecrypt jako plik w udziale sieciowym NAS SMB, więc nie chcę go przypadkowo usunąć.
Chcę, aby plik został zablokowany przed usunięciem, ale nadal jest możliwy do zapisu. Jak mam to zrobic?
Ten plik to wolumin Truecrypt jako plik w udziale sieciowym NAS SMB, więc nie chcę go przypadkowo usunąć.
Odpowiedzi:
Dla Windowsa:
W systemie Unix (w tym OS X):
Zauważ, że zapobiegnie to jedynie usunięciu pliku (usunięciu), ale nie zrobi nic przeciwko przypadkowemu obcięciu lub zastąpieniu śmieci. Jeśli plik jest zapisywalny, możesz do niego zapisać cokolwiek, kropka.
Ponadto uprawnienia do plików są prawie niemożliwe do przetłumaczenia między systemami operacyjnymi. Jeśli na serwerze NAS działa system Linux, a użytkownik próbuje ustawić uprawnienia z poziomu systemu Windows, wynik końcowy może być inny niż oczekiwany.
W Linuksie możesz utworzyć twardy link do niego. Następnie możesz do niego napisać i „usunąć”, ale usuniesz tylko odniesienie w swoim katalogu. Drugi twardy link nadal będzie wskazywał na zawartość pliku, więc i tak nie zostanie usunięty.
W świecie uniksowym nie „usuwasz” plików. Po prostu zmniejszasz liczbę twardych linków do niego. Gdy nic innego na to nie wskazuje, przestrzeń jest uważana za wolną i można ją wykorzystać…
Kopie zapasowe Naprawdę nie możesz chronić pliku do zapisu przed uszkodzeniem, nawet jeśli możesz przed usunięciem. Twórz kopie zapasowe codziennie.
Oprócz poprzednich anwersów rozważę spojrzenie na selinux. Tam możesz zdefiniować dość szczegółowe ograniczenia.
W systemie plików krów, takim jak btrfs, można to osiągnąć za pomocą podwoluminów + migawek lub cp za pomocą --reflink = zawsze spowoduje to, że będzie tyle plików, ile chcesz, które zajmą tyle samo miejsca co jeden + trochę narzutu (ale bez szalonej liczby kopii lub migawek, szczególnie w połączeniu z niewielkimi rozmiarami plików, nie powinno to być zauważalne), dopóki nie zostaną zmodyfikowane, w którym to przypadku tylko części, które zostały zmienione, są przechowywane osobno, a reszta jest nadal udostępniana. Następnie ustaw uprawnienia dla każdego z nich osobno (aby osiągnąć to, co chcesz, po prostu regularnie twórz migawkę lub kopiuj z uprawnieniami tylko do odczytu (i opcjonalnie zamontuj ro lub nie wszystko, jeśli jest to migawka i jeśli jest to plik, użyj chattr + i (użytkownicy mogą nie zapisuj ani nie modyfikuj pliku, nawet jeśli masz uprawnienia do zapisu) na jednej kopii, jeśli jesteś paranoikiem).
W „standardowym” systemie UNIX ochrona pojedynczego pliku przed usunięciem wydaje się niemożliwa, jeśli katalog można zapisać. Intuicyjnie można oczekiwać, że usunięcie ochrony w z bitów trybu za pomocą „chmod” powinno zabezpieczyć przed usunięciem, ale TO NIE JEST PRZYPADEK. Podobnie w AFS nie można zabezpieczyć pojedynczych plików przed usunięciem, ponieważ wpisy ACL (brak lub odmowa odpowiedniego uprawnienia „d”) dotyczą tylko całego katalogu.