El permiso de lectura de Unix es en realidad el mismo que el permiso de ejecución, por lo que, por ejemplo, un proceso tiene acceso de escritura y también puede ejecutar el mismo archivo.
Esto se puede hacer con bastante facilidad: primero, este proceso debe cargar el contenido del archivo, que se ejecutará, en un búfer. Luego, llama a una función de una biblioteca compartida que analiza el ELF en el búfer y lo carga en las direcciones correctas (probablemente sobrescribiendo el proceso anterior como siempre, al llamar a execvp). El código salta al punto de entrada del nuevo programa y se está ejecutando.
Estoy bastante seguro de que Dennis Ritchie y Ken Thompson estaban al tanto de ese problema. Entonces, ¿por qué incluso inventaron este permiso, cuál es la intención detrás de él y cuál es su sentido, si no puede evitar que se ejecute cualquier proceso de cualquier usuario que tenga acceso de lectura? ¿Existe tal sentido o es superfluo?
¿Esto podría ser un problema de seguridad grave? ¿Hay algún sistema que dependa de la fuerza de los permisos rw o r--?