GNU/Linux >> Tutoriales Linux >  >> Linux

¿Por qué Linux/POSIX tiene lchown pero no lchmod?

Linux, como la mayoría de los sistemas similares a Unix (Apple OS/X es una de las raras excepciones), ignora los permisos de 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 cambiar el nombre o desvincular sus entradas en directorios que tienen el t conjunto de bits, como /tmp .

Para poder eliminar o cambiar el nombre de un archivo (enlace simbólico o no) en /tmp , debe ser el propietario del archivo. Esa es una de las razones por las que uno podría querer cambiar la propiedad de un enlace simbólico (para otorgar o eliminar el permiso 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 respaldo y archivo necesitan lchown() para 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.


Linux
  1. Linux – ¿Fusionar /usr/bin y /usr/sbin en /bin (gnu/linux)?

  2. UNIX/Linux:¿Cuál es el permiso correcto de los directorios /tmp y /var/tmp?

  3. Linux:copie y cree el directorio de destino si no existe

  4. ¿Por qué timer_t está definido en time.h en Linux pero no en OS X?

  5. ¿Por qué se requieren < o > para usar /dev/tcp?

Directorio tmp de Linux:todo lo que necesita saber

¿Cómo maneja Linux múltiples separadores de rutas consecutivas (/home////username///file)?

Linux – ¿Por qué Locale Es_mx funciona pero no Es?

Linux:¿/sbin/init no existe?

¿Por qué Wine puede ejecutar programas de 64 bits en Linux pero no en Mac?

¿Por qué los directorios /home, /usr, /var, etc. tienen todos el mismo número de inodo (2)?