Si tengo un directorio en el que el usuario tiene permiso de lectura, ¿por qué no es posible comprobar si hay un archivo en ese directorio? Por ejemplo, digamos que tengo la carpeta /micarpeta con permiso de lectura. Esa carpeta tiene algún archivo 'garbage.txt' con permiso de lectura (para el usuario). Cuando intento usar stat /myfolder/garbage.txt aparece un error de permiso denegado. Si agrego permisos de ejecución para/micarpeta, puedo verificar si existe trash.txt.
¿Por qué necesito permisos de ejecución para comprobar si existe un archivo en una carpeta? Esperaba que los permisos de lectura en el directorio/carpeta fueran suficientes.
Respuesta1
En las carpetas de Linux los permisos son:
El bit de escritura permite al usuario afectado crear, cambiar el nombre o eliminar archivos dentro del directorio y modificar los atributos del directorio.
El bit de lectura permite al usuario afectado enumerar los archivos dentro del directorio
El bit de ejecución permite al usuario afectado ingresar al directorio y acceder a archivos y directorios dentro
El bit adhesivo indica que los archivos y directorios dentro de ese directorio solo pueden ser eliminados o renombrados por su propietario (o raíz).
Más información:
Respuesta2
Los permisos de ejecución en un directorio le permiten recorrer ese directorio. Y debe poder acceder al directorio para usar estadísticas en ese archivo.
Ver tambiénhttps://stackoverflow.com/questions/790686/understanding-linux-directory-permissions-reasoning