No tengo una Mac, así que no puedo saber cosas como ?
o :
en los nombres de archivos...
Estoy especialmente interesado en el separador de ruta de Dos/Windows®: \
. Sé que en Linux es un carácter legal que se puede usar dentro de nombres de archivos fat32.(Windows® se quejará de que el volumen está dañado).
¿Ocurre lo mismo con OSX? ¿O la ejecución mkdir ..\\dirent
se creará dirent
en el directorio principal?(aún en el caso de fat32 porque ya conozco el comportamiento en hfs) ?
Por supuesto, me refiero al caso en el que el volumen se monta a través del Finder.
Dependiendo de la respuesta, podría confirmar la existencia de una vulnerabilidad en un popular software de gestión de código fuente…
Respuesta1
Esta es una pregunta interesante y tuve que descubrirla yo mismo en mi MacBook con sistema operativo "OS X El Capitan". Debe diferenciar entre caracteres no permitidos en el buscador/aplicaciones que utilizan el buscador (por ejemplo, editor de texto) versus la línea de comando.
En primer lugar, la barra invertida "\" es como cualquier carácter normal tanto en el buscador como en la línea de comando. Entonces puedes crear un archivo o directorio como A\B. Lo mismo ocurre con el signo de interrogación.
Cuando se trata de los dos puntos ":", entonces se vuelve complicado. Cuando crea un archivo llamado A:B en la línea de comando, se crea y se muestra correctamente en la línea de comando, pero se muestra como A/B en el buscador. Y si intenta crear un archivo que contenga dos puntos en el buscador, como C:D, obtendrá el error "El nombre C:D no se puede usar. Intente usar un nombre con menos caracteres o sin signos de puntuación. "
Crear un archivo o directorio que comience con el punto "." Se puede hacer en la línea de comando, no hay problema. Pero como este tipo de archivos y directorios se utilizan para archivos y directorios ocultos, no puedes crearlos en el buscador. En su lugar, aparecerá una ventana de error que indicará "No puede usar un nombre que comience con un punto ".", porque estos nombres están reservados para el sistema. Elija otro nombre". Si ejecutas el comando
mkdir ..\\dirent
en la línea de comando, esto crea el directorio oculto con el nombre
..\\dirent
en el directorio actual, por lo que no es un directorio llamado dirent
en el directorio principal.
Por cierto: probé esto con una memoria USB formateada en fat32, pero incluso si usé un disco duro externo con formato NTFS o la unidad SSD interna con formato HFS+, se comporta igual.
Si miro todos estos archivos y directorios (que escribí en mi MacBook en la memoria USB) en el Explorador de Windows (con Windows 10), tanto la barra invertida, los dos puntos y el signo de interrogación se muestran de manera diferente que en la MacBook, cada uno de ellos con el mismo carácter especial que no puedo crear en mi teclado ni puedo copiar y pegar correctamente; pegar en esta ventana aquí crea "" que no se parece al carácter que se muestra en el Explorador de Windows. En el Explorador de Windows se parece al punto ".", pero este punto está ubicado un poco por encima del punto normal, es decir, verticalmente en el medio.
Espero poder ayudarte de alguna manera.