Linux, como la mayoría de los sistemas tipo Unix (Apple OS / X es una de las raras excepciones), ignora los permisos en los enlaces simbólicos cuando se trata de resolver sus objetivos, por ejemplo.
Sin embargo, la propiedad de los enlaces simbólicos, como otros archivos, es relevante cuando se trata del permiso para renombrar o desvincular sus entradas en directorios que tienen el t
bit establecido, como /tmp
.
Para poder eliminar o cambiar el nombre de un archivo (enlace simbólico o no) /tmp
, debe ser el propietario del archivo. Esa es una razón por la que uno podría querer cambiar la propiedad de un enlace simbólico (para otorgar o eliminar permisos para desvincularlo / renombrarlo).
$ ln -s / /tmp/x
$ rm /tmp/x
# OK removed
$ ln -s / /tmp/x
$ sudo chown -h nobody /tmp/x
$ rm /tmp/x
rm: cannot remove ‘/tmp/x’: Operation not permitted
Además, como mencionó Mark Plotnick en su respuesta ahora eliminada , las aplicaciones de copia de seguridad y archivo deben lchown()
restaurar los enlaces simbólicos a sus propietarios originales. Otra opción sería cambiar euid y egid antes de crear el enlace simbólico, pero eso no sería eficiente y complicaría las gestiones correctas en el directorio en el que se extrae el enlace simbólico.
lrwxrwxrwx
. Achmod
no tiene sentido aquí. Seguir el enlace lo lleva a los permisos de destino.