ผู้ใช้ที่เป็นผลลัพธ์ของไฟล์ขึ้นอยู่กับสิ่งที่ผู้แก้ไขทำ ผู้แก้ไขบางคนบันทึกไฟล์โดยตัดทอนและเขียนทับไฟล์ (โดยไม่เปลี่ยน inode) และบรรณาธิการบางเปลี่ยนชื่อไฟล์เป็นชื่ออื่น ( file
ที่จะfile~
เป็นปกติ) และสร้างไฟล์ใหม่ที่มีชื่อของเดิม การแก้ไขไฟล์ต้นฉบับจะทำให้เจ้าของเหมือนเดิมการสร้างไฟล์ใหม่จะทำให้ไฟล์ใหม่เป็นของ UID ของกระบวนการสร้าง
ของบรรณาธิการที่ผมมีใน Debian, nano
และjoe
เช่นเดียวnvi
และvim
(รุ่นที่น้อยที่สุดในvim-tiny
) ดูเหมือนจะเขียนทับในสถานที่ แม้ว่าฉันคิดvim
และ Emacs อาจกำหนดค่าได้ในสิ่งที่พวกเขาทำ
ความคิดเห็นสตีเฟ่นเกี่ยวกับการปรับปรุงอะตอม ปัญหาเกี่ยวกับการสร้างใหม่ในตำแหน่งคือไฟล์ถูกตัดให้มีความยาวเป็นศูนย์จากนั้นจึงเขียน กระบวนการอื่นสามารถเปิดและอ่านก่อนที่ข้อมูลทั้งหมดจะถูกเขียน
การปรับปรุงอะตอมจะทำได้โดยการสร้างรุ่นใหม่ที่พูดfile.new
แล้วเปลี่ยนชื่อไปfile.new
file
ออกจากไฟล์สำรองหนึ่งสามารถสร้างfile.new
การเชื่อมโยงfile
ไปfile~
แล้วเปลี่ยนชื่อไปfile.new
file
การเปลี่ยนชื่อเป็นอะตอมมิกในกระบวนการใด ๆ ที่เข้าถึงไฟล์ตามชื่อจะได้รับเวอร์ชันเก่าหรือเวอร์ชันใหม่ ตัวจัดการไฟล์ที่เปิดอยู่แน่นอนจะชี้ไปที่ไฟล์ที่ถูกเปิดค้างไว้ทำให้มีมุมมองที่สอดคล้องกันกับไฟล์
จากจุดอนุญาตการดูไฟล์การบันทึกทับไฟล์เดียวกัน (inode) ต้องใช้สิทธิ์ในการเขียนไฟล์ (แต่ไม่ใช่ไดเรกทอรี) การเปลี่ยนชื่อและสร้างไฟล์ใหม่ต้องใช้สิทธิ์การเขียนในไดเรกทอรี (แต่ไม่ใช่ไฟล์ต้นฉบับ) )
(การเปลี่ยนชื่อและสร้างใหม่เป็นอีกวิธีหนึ่งในการแก้ไขการอนุญาตไฟล์ในกรณีที่มีคนสร้างหรือแก้ไขไฟล์ในไดเรกทอรีที่ใช้ร่วมกัน แต่ลืมที่จะให้สิทธิ์การเขียนเป็นกลุ่ม)