Pengguna file yang dihasilkan tergantung pada apa yang editor lakukan. Beberapa editor menyimpan file dengan memotongnya, dan menulis di atas file (tanpa mengubah inode). Dan beberapa editor mengganti nama file menjadi nama lain ( file
seperti file~
biasa), dan membuat file baru dengan nama aslinya. Memodifikasi file asli membuat pemilik tetap sama, membuat yang baru membuat file baru yang dimiliki oleh UID dari proses pembuatan.
Dari editor yang saya miliki di Debian, nano
dan joe
, juga nvi
dan vim
(versi minimal dalam vim-tiny
) tampaknya menimpa di tempat. Meskipun saya kira vim
dan Emacs mungkin dapat dikonfigurasi dalam apa yang mereka lakukan.
Stephen berkomentar tentang pembaruan atom . Masalah dengan menciptakan kembali di tempat adalah bahwa file terpotong ke panjang nol, lalu ditulis. Proses lain dapat membuka dan membacanya sebelum semua data ditulis.
Pembaruan atom akan dilakukan dengan membuat versi baru seperti katakan file.new
, lalu ganti nama file.new
menjadi file
. Meninggalkan file cadangan, orang dapat membuat file.new
, menautkan file
ke file~
dan kemudian mengganti nama file.new
menjadi file
. Ganti nama bersifat atomik dalam proses apa pun yang mengakses file dengan nama mendapatkan versi lama atau baru, bukan apa pun di antaranya. Pegangan file yang terbuka tentu saja akan mengarah ke file yang dibuka, memberikan tampilan yang konsisten pada file.
Dari sudut pandang izin file , menyimpan lebih dari file yang sama (inode) memerlukan akses tulis ke file itu sendiri (tetapi bukan direktori), mengubah nama file dan membuat yang baru memerlukan akses tulis ke direktori (tetapi tidak ke file asli ).
(Mengganti nama dan membuat ulang secara kebetulan juga merupakan cara untuk memperbaiki izin file jika seseorang membuat atau memodifikasi file dalam direktori bersama, tetapi lupa untuk memberikan akses tulis grup kepada file tersebut.)