¿Qué permisos afectan la creación de enlaces duros? ¿Importa la propiedad del archivo?
Supongamos que el usuario alice
desea crear un enlace fijo al archivo target.txt
en un directorio target-dir
.
- ¿Qué permisos
alice
necesita en ambostarget.txt
ytarget-dir
? - Si
target.txt
es propiedad del usuariobill
ytarget-dir
es propiedad del usuariochad
, ¿cambia algo?
Intenté simular esta situación creando la siguiente estructura de carpetas / archivos en un ext4
sistema de archivos:
#> 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
Si bien alice
puede crear un enlace suave a target.txt
, ella no puede crear un enlace duro:
#> 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 alice
posee target.txt
y no se cambian los permisos, el enlace duro tiene éxito. ¿Que me estoy perdiendo aqui?
target.txt
y target-dir
permisos, a menos que sudo
como root.
alice
puedo acceder tanto al archivo original como a un enlace duro (creado con sudo
), pero no puedo crear el enlace como el usuario a alice
pesar de que todos estamos de acuerdo con estos permisos debería ser suficiente para ello.