Bagaimana cara mengunci file terhadap penghapusan tetapi tetap membuatnya bisa ditulisi?

33

Saya ingin membuat file terkunci terhadap penghapusan tetapi masih bisa ditulisi. Bagaimana saya melakukan ini?

File yang dimaksud adalah volume Truecrypt sebagai file pada jaringan NAS SMB, jadi saya tidak ingin menghapusnya secara tidak sengaja.

therobyouknow
sumber
1
Itu tidak mungkin. Menulis angka nol untuk menghapusnya.
soandos
@soando - Saya tidak setuju saya takut. Karena menulis nol padanya berarti masih ada file, tetapi penuh dengan nol. Memang ada perintah Linux untuk membuat file 'jarang' penuh nol.
therobyouknow

Jawaban:

34

Untuk Windows:

  1. Tolak izin "Hapus" pada file.
  2. Hapus atau tolak izin "Hapus item anak" di direktori induk.

Untuk Unix (termasuk OS X):

  1. Hapus izin "Tulis" di direktori induk.

Perhatikan bahwa ini hanya akan mencegah file dihapus (dihapus), tetapi tidak akan melakukan apa pun terhadap pemotongan yang tidak disengaja atau menimpa dengan sampah. Jika suatu file dapat ditulisi, Anda dapat menulis apa saja padanya, titik.

Juga, izin file hampir tidak mungkin untuk menerjemahkan antara sistem operasi. Jika NAS menjalankan Linux, dan Anda mencoba mengatur izin dari dalam Windows, hasil akhirnya mungkin berbeda dari yang Anda harapkan.

grawity
sumber
Saya kira jawaban terbaik akan saya dapatkan. +1 dan terima kasih. Ya, NAS adalah Lacie 2big yang menjalankan versi linux pada ARM.
therobyouknow
1
Anda sebenarnya tidak perlu Menolak menghapus, cukup hapus Hapus dari entri kontrol akses yang ada (ACE). (Tolak ACE membuat segalanya menjadi lebih kompleks, biasanya bukan jalan yang baik dalam jangka panjang.)
Richard
2
@ Richard: AFAIK, menghapus memerlukan penonaktifan sepenuhnya ACL pewarisan untuk file itu, yang membuatnya menjadi lebih kompleks pada akhirnya.
grawity
Saya setuju dengan Grawity. Tolak izin Hapus adalah cara untuk pergi. Jika izin berbagi diatur untuk memodifikasi, maka penolakan akan tetap memblokir penghapusan, sementara membiarkannya kosong akan memungkinkan penghapusan.
surfasb
26

Di Linux Anda bisa membuat tautan keras ke sana. Kemudian Anda dapat menulis dan menghapusnya, tetapi Anda hanya akan menghapus referensi di direktori Anda. Hard-link lainnya masih akan menunjuk ke isi file, jadi toh itu tidak akan dihapus.

Di dunia Unix, Anda tidak "menghapus" file. Anda cukup mengurangi jumlah tautan keras ke sana. Ketika tidak ada lagi yang menunjuk ke sana, ruang tersebut dianggap bebas dan dapat digunakan ...

woliveirajr
sumber
2
Ide bagus. Tidak tahu apakah @Rob dapat membuat hardlink pada NAS-nya, tetapi jika ia bisa, itu adalah solusi yang sangat cerdas.
CarlF
1
+1 Saya dapat mengombinasikannya dengan jawaban yang diterima jika memungkinkan. atau secara terpisah jika tidak. +1 untuk berpikir di luar kotak seperti yang dikatakan. Namun share linux yang dimaksud adalah drive NAS, tidak yakin fasilitas konsol apa yang tersedia, itu adalah bentuk embedded atau semi-embedded dari linux. +1 tetap karena mungkin membantu orang lain yang memiliki desktop linux biasa atau komputer yang bertindak sebagai bagian.
therobyouknow
2
Teknik yang sama harus bekerja dengan NTFS.
Rotsor
+1 RBerteig dan +1 CarlF untuk mendukung solusi woliveirajr.
therobyouknow
12

Cadangan. Anda tidak dapat benar-benar melindungi file yang dapat ditulisi dari kerusakan bahkan jika Anda bisa dari penghapusan. Cadangkan setiap hari.

CarlF
sumber
4
+1. Lakukan ini apa pun yang diterapkan sabuk dan suspender lainnya.
RBerteig
+1 CarlF dan +1 RBerteig. Setuju. File-file semua didukung juga ke media optik (DVD-R, + R, + R DL dan blu-ray 25gb dan dl 50gb). Saya juga dapat mempertimbangkan hard drive kedua.
therobyouknow
Saya harus menambahkan, saya memiliki cadangan file dalam volume truecrypt yang merupakan file kontainer. Bukan volume truecrypt itu sendiri.
therobyouknow
0

Selain jawaban sebelumnya saya akan mempertimbangkan untuk melihat selinux. Di sana Anda dapat menentukan batasan granular yang cukup.

Niels Basjes
sumber
0

Pada sistem file sapi seperti btrfs Anda dapat mencapainya dengan menggunakan subvolume + snapshots atau cp dengan --reflink = selalu ini akan secara efektif menghasilkan banyak file seperti yang Anda inginkan yang akan menggunakan jumlah ruang yang sama dengan satu + beberapa overhead (tetapi tanpa jumlah salinan atau snapshot yang gila terutama dikombinasikan dengan ukuran file kecil ini tidak boleh terlihat) sampai mereka dimodifikasi dalam hal ini hanya bagian-bagian yang telah diubah disimpan secara terpisah dan sisanya masih dibagi. Kemudian atur masing-masing izin secara terpisah (untuk mencapai apa yang Anda inginkan secara teratur membuat snapshot atau salin dengan izin hanya baca (dan secara opsional pasanglah ro atau tidak semua jika itu snapshot dan jika file menggunakan chattr + i (pengguna dapat dapat menulis atau memodifikasi file meskipun memiliki izin menulis) pada satu salinan jika Anda paranoid).

orange_juice6000
sumber
0

Dalam "standar" UNIX, tampaknya mustahil untuk melindungi satu file dari penghapusan jika direktori tersebut dapat ditulisi. Secara intuitif, orang mungkin berharap bahwa menghapus perlindungan w dari bit mode dengan 'chmod' harus melindungi dari penghapusan, tetapi INI BUKAN KASUS. Demikian pula, dalam AFS, Anda tidak dapat melindungi file tunggal agar tidak dihapus, karena entri ACL (kurang atau menolak izin 'd' yang relevan) hanya berlaku untuk direktori secara keseluruhan.

Klaus Engelhardt
sumber