Katakanlah Anda membuka file di mana Anda memiliki izin menulis.
Sementara itu Anda mengubah izin dan menghapus izin menulis saat Anda masih membuka file di beberapa editor.
Apa yang akan terjadi jika Anda mengedit dan menyimpannya?
Jawaban yang Diterima:
Izin file diperiksa saat file dibuka. Mengubah izin tidak memengaruhi proses apa yang dapat dilakukan dengan membuka file tersebut. Ini terkadang digunakan dengan proses yang dimulai dengan hak istimewa tambahan, membuka file, lalu menghapus hak istimewa tambahan tersebut:mereka masih dapat mengakses file tetapi mungkin tidak dapat membukanya kembali.
Namun editor biasanya tidak membiarkan file tetap terbuka. Ketika editor membuka dokumen, apa yang terjadi di balik tenda adalah editor memuat konten file dalam memori dan menutup file. Saat Anda menyimpan dokumen, editor membuka file dan menulis konten baru.
Editor dapat mengikuti salah satu dari dua strategi saat menyimpan file. Mereka dapat membuat file baru, lalu memindahkannya ke tempatnya. Atau, mereka dapat membuka file yang ada dan menimpa konten lama. Menimpa memiliki keuntungan bahwa izin dan kepemilikan file tidak berubah, dan itu berfungsi bahkan di direktori hanya-baca. Kerugian utama dari penimpaan adalah jika penyimpanan gagal di tengah jalan (editor crash, sistem crash, disk penuh, ...), Anda dibiarkan dengan dokumen terpotong. Editor yang berbeda memilih strategi yang berbeda; yang baik lakukan write-to-new-then-move jika memungkinkan, dan timpa hanya di direktori read-only (setelah membuat cadangan di tempat lain).
Jika editor mengikuti strategi baru-kemudian-pindah, izin pada file tidak masalah:editor akan membuat file baru, dan hanya perlu izin menulis pada direktori untuk itu. Ada dua pengecualian:jika direktori memiliki sticky bit, mengubah kepemilikan file (tetapi bukan izin) dapat membuat proses tidak mungkin memindahkan file baru ke tempatnya. Pengecualian lainnya adalah pada sistem yang mendukung izin penghapusan melalui ACL (seperti OSX):mencabut izin penghapusan dari file dapat membuat pemindahan tidak mungkin dilakukan.
Jika editor mengikuti strategi penimpaan, mencabut izin menulis akan membuat penyimpanan menjadi tidak mungkin. (Namun, beberapa editor yang menimpa secara default mungkin kembali ke new-then-move.)
Terkait:Bagaimana cara mengubah nama file yang berisi karakter?
Di Vim, Anda dapat memaksa strategi penimpaan dengan mematikan backupcopy
pilihan; lihat juga mengapa nilai inode berubah ketika kita mengedit di editor “vi”?. Di Emacs, Anda dapat memaksa strategi penimpaan dengan menyetel backup-by-copying
variabel ke t
.