Quelles autorisations affectent la création de liens physiques? La propriété du fichier est-elle importante?
Supposons que l'utilisateur alice
veuille créer un lien dur vers le fichier target.txt
dans un répertoire target-dir
.
- De quelles autorisations a
alice
besoin à la fois surtarget.txt
ettarget-dir
? - Si
target.txt
appartient à l'utilisateurbill
ettarget-dir
appartient à l'utilisateurchad
, cela change-t-il quelque chose?
J'ai essayé de simuler cette situation en créant la structure de dossiers / fichiers suivante dans un ext4
système de fichiers:
#> 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
Bien qu'elle alice
puisse créer un lien logiciel vers target.txt
, elle ne peut pas créer de lien physique:
#> ln source-dir/target.txt target-dir/
ln: failed to create hard link ‘target-dir/target.txt’ => ‘source-dir/target.txt’: Operation not permitted
Si le alice
propriétaire target.txt
et aucune autorisation ne sont modifiés, le lien dur réussit. Qu'est-ce que j'oublie ici?
target.txt
et target-dir
, sauf si je suis sudo
root.
alice
Je peux accéder à la fois au fichier d'origine et à un lien dur (créé avec sudo
), mais je ne peux pas créer le lien comme l'utilisateur, même alice
si nous convenons tous que ces autorisations devraient lui suffire.