Quali autorizzazioni influiscono sulla creazione di un collegamento reale? La proprietà dei file è importante?
Supponiamo che l'utente alice
desideri creare un collegamento reale al file target.txt
in una directory target-dir
.
- Quali autorizzazioni sono
alice
necessarie per entrambitarget.txt
etarget-dir
? - Se
target.txt
è di proprietà dell'utentebill
edtarget-dir
è di proprietà dell'utentechad
, cambia qualcosa?
Ho provato a simulare questa situazione creando la seguente struttura di cartelle / file in un ext4
filesystem:
#> 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 alice
possa 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 alice
proprietà target.txt
e nessuna autorizzazione vengono modificate, il collegamento reale ha esito positivo. Cosa mi sto perdendo qui?
target.txt
e target-dir
, a meno che non sudo
sia un utente root.
alice
reale 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 alice
nonostante tutti concordiamo queste autorizzazioni dovrebbe essere sufficiente per questo.