Saya memiliki file yang sangat penting yang digunakan aplikasi di tempat kerja saya, saya perlu memastikan itu tidak menghapus apa pun, bagaimana saya bisa melakukan itu?
Saya memiliki file yang sangat penting yang digunakan aplikasi di tempat kerja saya, saya perlu memastikan itu tidak menghapus apa pun, bagaimana saya bisa melakukan itu?
Jawaban:
Ya, Anda dapat mengubah atribut file menjadi hanya-baca.
Perintahnya adalah:
chattr +i filename
Dan untuk menonaktifkannya:
chattr -i filename
Dari man chattr
:
File dengan
i
atribut tidak dapat dimodifikasi: tidak dapat dihapus atau diganti namanya, tidak ada tautan yang dapat dibuat ke file ini dan tidak ada data yang dapat ditulis ke file. Hanya pengguna super atau proses yang memilikiCAP_LINUX_IMMUTABLE
kemampuan yang dapat mengatur atau menghapus atribut ini.
chflags schg
Membakarnya ke CD. Masukkan CD ke dalam drive CD-ROM dan akses dari sana.
Contoh:
# 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
atau cramfs
yang dikompresi dan hanya-baca. Perlu alat khusus untuk membangun sistem file.
Linux memiliki opsi bind-mount yang merupakan fitur yang cukup 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 bind-mount file untuk dirinya sendiri (ya, Anda dapat melakukannya di Linux), kemudian dipasang kembali dalam mode R / O-mode. Tentu saja ini bisa dilakukan pada direktori juga.
Anda juga harus membuat banyak tautan keras ke file tersebut. Ini harus di berbagai lokasi yang tidak dapat diakses oleh pengguna biasa.
Dengan cara ini, bahkan jika mereka berhasil mengesampingkan perlindungan chattr Anda, data akan tetap ada dan Anda dapat dengan mudah mengembalikannya ke tempat yang dicari aplikasi Anda.
Orang lain telah menjawab pertanyaan Anda saat Anda menanyakannya. Seperti @Sven disebutkan dalam komentar, solusi umum untuk pertanyaan, "Bagaimana saya memastikan saya tidak pernah kehilangan file?" adalah membuat cadangan file. Buat salinan file dan simpan di banyak tempat. Selain itu, jika file tersebut sangat penting dan perusahaan Anda memiliki kebijakan untuk membuat cadangan data penting dengan layanan cadangan, Anda mungkin melihat apakah file ini termasuk dalam layanan.
Pada Linux yang berubah bendera hanya didukung pada beberapa jenis sistem file (sebagian besar yang asli seperti ext4
, xfs
, btrfs
...)
Pada sistem file di mana itu tidak didukung, opsi lain adalah untuk mengikat-mount file itu sendiri dalam mode read-only. Itu harus dilakukan dalam dua langkah:
mount --bind file file
mount -o remount,bind,ro file
Itu harus dilakukan pada setiap boot, misalnya via /etc/fstab
.
umount
file untuk mendapatkan izin menulis lagi
Dalam komentar atas jawaban Kevin , Jerry menyebutkan:
Yah, tentu saja file sedang dicadangkan secara teratur, saya hanya ingin lapisan perlindungan lain terhadap pengguna yang terkadang bekerja pada kotak dengan izin pengguna root. -
Saya akan berasumsi bahwa Anda tidak dapat mengubah praktik ini, karena ini adalah ide yang sangat, sangat buruk.
Semua saran tentang menggunakan perangkat baca-saja memiliki masalah yang sama - itu menjadikannya PITA bagi Anda untuk membuat perubahan yang sah ketika Anda perlu. Dalam kasus drive yang dapat dikunci, seperti kartu SD, Anda mengalami masalah yang tiba-tiba Anda rentan ketika Anda membuka kunci untuk melakukan perubahan.
Apa yang saya sarankan sebagai gantinya adalah menyiapkan mesin lain sebagai server NFS, dan berbagi direktori dengan file-file penting ke mesin yang telah di-root oleh pengguna. Bagikan pemasangan sebagai hanya-baca, sehingga mesin dengan pengguna yang tidak Anda percayai tidak dapat membuat modifikasi apa pun. Saat Anda perlu melakukan perubahan secara sah, Anda dapat terhubung ke server NFS dan membuat perubahan di sana.
Kami menggunakan ini untuk server web kami, sehingga eksploit yang berhasil terhadap server web tidak akan dapat menyisipkan atau mengubah file apa pun yang kemudian dilayani server, atau mengubah konfigurasi.
Perhatikan bahwa ini bisa macet dilewati dengan cara yang sama bahwa semua yang terkait dengan mount-point bisa:
Mengapa tidak membuat gambar ISO 9660, yang hanya bisa dibaca oleh desain?
Pasang gambar ISO, dan itu akan terlihat seperti CD-ROM, tetapi dengan kinerja hard drive, dan file pada gambar yang dipasang akan sama amannya dari penghapusan seperti file pada CD-ROM fisik.
Gagasan membakar file sensitif ke CD dan menjalankannya dari CD-ROM menarik, dengan asumsi bahwa pengaturan bit yang tidak dapat diubah pada file tidak dianggap cukup.
Ada potensi masalah negatif dengan menjalankannya dari CD fisik, termasuk kinerja (drive CD-ROM jauh, jauh lebih lambat daripada hard drive atau SSD). Ada kemungkinan CD-ROM dihapus oleh orang yang bermaksud baik dan diganti dengan disk yang berbeda yang membutuhkan akses. Ada kemungkinan pihak jahat hanya mengeluarkan disk dan melemparkannya ke dalam microwave (atau tempat sampah), sehingga "menghapus" file Anda. Ada ketidaknyamanan karena harus memiliki drive CD-ROM perangkat keras khusus hanya untuk satu file itu, dan faktor lainnya.
Tetapi OP menjelaskan bahwa maksud utamanya adalah untuk melindungi dari penghapusan yang tidak disengaja, bukan dari tindakan jahat, dan bahwa file tersebut didukung dan dipulihkan jika terjadi kecelakaan, tetapi sangat diharapkan bahwa file tersebut tidak pernah dihapus secara tidak sengaja.
Tampaknya menjalankan file dari image ISO yang dipasang akan memenuhi persyaratan.
shred
melakukannya pada saat itu. Tetapi kecuali jika Anda menolak akses fisik ke mesin, sepertinya masih lebih mudah untuk hanya mengeluarkan CD fisik dari drive dan melemparkannya ke tempat sampah daripada menurunkan dan menimpa file ISO, meskipun keduanya mudah. Dan OP telah menyatakan bahwa file penting dicadangkan secara teratur, jadi ini hanyalah tindakan ekstra terhadap kerusakan yang tidak disengaja, bukan terhadap kejahatan berbahaya.
chattr +i
mungkin membantu tetapi akan membuat file hanya-baca juga (dan dapat diganti denganchattr -i
), juga Anda dapat mencoba melindunginya dengan SELInux dll.