ทุกคำตอบอื่น ๆ ที่นี่จะต้องเข้าถึงรากช่วยใด ๆของผู้ใช้บนเครื่องเดียวกันในการคัดลอกไฟล์หรือต้องใช้รหัสผ่านที่ใช้ร่วมกัน นี่คือวิธีการที่ไม่:
มีUSER2
(เรียกเขาว่า Bob) เรียกใช้คำสั่งต่อไปนี้ (คุณสามารถแทนที่/tmp
ด้วยไดเรกทอรีใด ๆ ที่ผู้ใช้ทั้งสองมีสิทธิ์ในการเขียน แต่/tmp
เหมาะอย่างยิ่งเพราะโดยค่าเริ่มต้นมันเหนียวซึ่งป้องกันผู้ใช้ที่ประสงค์ร้ายจากการล้มล้างกระบวนการนี้ โดย Bob ที่สามารถอ่านได้ทั่วโลกยังใช้งานได้):
[bob@computer ~]$ touch /tmp/test.txt
[bob@computer ~]$ chmod 622 /tmp/test.txt
สิ่งนี้จะสร้างไฟล์ที่สามารถเขียนได้ แต่ไม่สามารถอ่านได้
จากนั้นUSER1
ให้ (เรียกเธอว่าอลิซ) เรียกใช้ (ถ้าคุณหวาดระแวงอลิซสามารถตรวจสอบการอนุญาตก่อนเพื่อให้แน่ใจว่าบ็อบเป็นเจ้าของไฟล์):
[alice@computer ~]$ dd if="$HOME/test.txt" of=/tmp/test.txt
/tmp/test.txt
นี้เขียนทับเนื้อหาของ หากคุณต้องการตรวจสอบความสมบูรณ์ของไฟล์อลิซควรสร้างแฮชของไฟล์ด้วย ตัวอย่างเช่น
[alice@computer ~]$ openssl sha1 < "$HOME/test.txt" > /tmp/test.txt.sha1
คุณสามารถเซ็นชื่อไฟล์แบบดิจิทัลหรือวิธีอื่นใดในการรับรองความถูกต้องของไฟล์
และในที่สุดบ๊อบก็ย้ายไฟล์และรับกรรมสิทธิ์:
[bob@computer ~]$ mv /tmp/test.txt "$HOME"
[bob@computer ~]$ chmod 600 "$HOME/test.txt"
และบ๊อบสามารถตรวจสอบความสมบูรณ์ได้ถ้าเขาชอบ /tmp/test.txt
ถ้าเป็นเช่นนั้นเขาควรจะตรวจสอบเพื่อให้แน่ใจว่าอลิซเท่านั้นสามารถเขียนไป
[bob@computer ~]$ diff /tmp/test/txt.sha1 <(openssl sha1 < "$HOME/test.txt")
หากไฟล์ถูกคัดลอกอย่างถูกต้องสิ่งนี้จะไม่แสดงผลลัพธ์