Które uprawnienia wpływają na tworzenie twardego łącza? Czy sama własność pliku ma znaczenie?
Załóżmy, że użytkownik alicechce utworzyć dowiązanie twarde do pliku target.txtw katalogu target-dir.
- Uprawnienia, które nie
alicepotrzebują zarównotarget.txtatarget-dir? - Jeśli
target.txtjest własnością użytkownikabillitarget-dirjest własnością użytkownikachad, czy coś to zmienia?
Próbowałem zasymulować tę sytuację, tworząc następującą strukturę folderów / plików w ext4systemie plików:
#> 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
Chociaż alicemoże utworzyć łącze miękkie target.txt, nie może utworzyć twardego łącza:
#> ln source-dir/target.txt target-dir/
ln: failed to create hard link ‘target-dir/target.txt’ => ‘source-dir/target.txt’: Operation not permitted
Jeśli alicewłasność target.txti żadne uprawnienia nie zostaną zmienione, łącze twarde powiedzie się. Czego tu brakuje?
target.txti target-diruprawnień, chyba że sudojako root.
aliceMogę uzyskać dostęp zarówno do oryginalnego pliku, jak i twardego łącza (utworzonego za pomocą sudo), ale nie mogę utworzyć łącza jako użytkownik, alicemimo że wszyscy zgadzamy się na te uprawnienia, powinien wystarczyć.