การอนุญาตใดบ้างที่ส่งผลต่อการสร้างฮาร์ดลิงก์ การเป็นเจ้าของไฟล์มีความสำคัญหรือไม่?
สมมติว่าผู้ใช้alice
ต้องการที่จะสร้างยากเชื่อมโยงไปยังแฟ้มในไดเรกทอรีtarget.txt
target-dir
- ซึ่งสิทธิ์ไม่
alice
ต้องทั้งในtarget.txt
และtarget-dir
? - หาก
target.txt
เป็นของผู้ใช้bill
และtarget-dir
เป็นของผู้ใช้chad
มันจะเปลี่ยนแปลงอะไรหรือไม่?
ฉันพยายามจำลองสถานการณ์นี้โดยสร้างโครงสร้างโฟลเดอร์ / ไฟล์ต่อไปนี้ในext4
ระบบไฟล์:
#> ls -lh . *
.:
drwxr-xr-x 2 bill bill 60 Oct 1 11:29 source-dir
drwxrwxrwx 2 chad chad 60 Oct 1 11:40 target-dir
source-dir:
-r--r--r-- 1 bill bill 0 Oct 1 11:29 target.txt
target-dir:
-rw-rw-r-- 1 alice alice 0 Oct 1 11:40 dummy
แม้ว่าalice
จะสามารถสร้างซอฟต์ลิงค์ให้target.txt
แต่เธอก็ไม่สามารถสร้างฮาร์ดลิงค์ได้:
#> ln source-dir/target.txt target-dir/
ln: failed to create hard link ‘target-dir/target.txt’ => ‘source-dir/target.txt’: Operation not permitted
หากalice
เป็นเจ้าของtarget.txt
และไม่มีการเปลี่ยนแปลงการอนุญาตฮาร์ดลิงก์จะสำเร็จ สิ่งที่ฉันหายไปที่นี่
target.txt
และtarget-dir
ได้รับอนุญาตนอกเสียจากว่าฉันจะsudo
เป็น root
alice
ฉันสามารถเข้าถึงทั้งไฟล์ต้นฉบับและฮาร์ดลิงก์ไปยังมัน (สร้างด้วยsudo
) แต่ฉันไม่สามารถสร้างลิงก์เป็น ผู้ใช้alice
แม้เราจะเห็นด้วยกับการอนุญาตเหล่านี้ควรจะเพียงพอสำหรับมัน