Quali autorizzazioni influiscono sulla creazione di un collegamento reale? La proprietà dei file è importante?
Supponiamo che l'utente alicedesideri creare un collegamento reale al file target.txtin una directory target-dir.
- Quali autorizzazioni sono
alicenecessarie per entrambitarget.txtetarget-dir? - Se
target.txtè di proprietà dell'utentebilledtarget-dirè di proprietà dell'utentechad, cambia qualcosa?
Ho provato a simulare questa situazione creando la seguente struttura di cartelle / file in un ext4filesystem:
#> 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
Sebbene alicepossa creare un collegamento diretto a target.txt, non può creare un collegamento reale:
#> ln source-dir/target.txt target-dir/
ln: failed to create hard link ‘target-dir/target.txt’ => ‘source-dir/target.txt’: Operation not permitted
Se le aliceproprietà target.txte nessuna autorizzazione vengono modificate, il collegamento reale ha esito positivo. Cosa mi sto perdendo qui?
target.txte target-dir, a meno che non sudosia un utente root.
alicereale come . Posso accedere sia al file originale sia a un collegamento reale (creato con sudo), ma non riesco a creare il collegamento come l'utente alicenonostante tutti concordiamo queste autorizzazioni dovrebbe essere sufficiente per questo.