El enlace simbólico no funciona, usa UBUNTU 16 LTS estándar... Muestra "Permiso denegado" donde esperaba obtener acceso, no funciona incluso después de chown
.
Ejemplo completo:
sudo rm /tmp/file.txt # if exist, remove
cd ~
sudo chmod 666 data/file.txt
ls -l data/file.txt # "-rw-rw-rw-" as expected
more data/file.txt # working fine
sudo ln -sf $PWD/data/file.txt /tmp/file.txt # fine
ls -l /tmp/file.txt # "lrwxrwxrwx", /tmp/file.txt -> /home/thisUser/file.txt
more /tmp/file.txt # fine
sudo chown -h postgres:postgres /tmp/file.txt
sudo more /tmp/file.txt # NOT WORK! but its is sudo! and 666!
Respuesta aceptada:
Estas acciones deberían generar un mensaje de error:Permiso denegado . El directorio, /tmp
, tiene permisos, incluido el sticky bit. El error es el resultado de la configuración del kernel para fs.protected_symlinks
.
Para mostrar la configuración, sysctl fs.protected_symlinks
. Esto es igual a 1
cuando se establece. Para deshabilitar temporalmente, lo cual no se recomienda , sysctl -w fs.protected_symlinks=0
. Para apagar permanentemente, lo cual nuevamente no se recomienda , use /etc/sysctl.conf
.
Consulte patchwork.kernel.org para obtener más información.
Para evitar que el enlace se rompa, a continuación se muestran los párrafos de resumen iniciales sobre los enlaces simbólicos del hipervínculo.
Kees Cook – 2 de julio de 2012, 20:17
Esto agrega restricciones de enlaces simbólicos y enlaces físicos a Linux VFS.
Enlaces simbólicos:
Una clase de problemas de seguridad de larga data es la carrera
basada en enlaces simbólicos
tiempo de verificación-tiempo-de-uso, que se ve más comúnmente en directorios de escritura mundial
como /tmp. El método común de explotación de esta falla
es cruzar los límites de privilegios cuando se sigue un enlace simbólico dado (es decir, un
proceso raíz sigue un enlace simbólico que pertenece a otro usuario). Para obtener una lista probablemente
incompleta de cientos de ejemplos a lo largo de los años, consulte:http://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=/tmp
La solución es permitir que los enlaces simbólicos solo se sigan cuando se encuentren fuera
de un directorio fijo de escritura mundial, o cuando el uid del enlace simbólico y el seguidor
coincidan, o cuando el propietario del directorio coincida con el propietario del enlace simbólico.