¿Cuál es el propósito de los permisos de Linux como 111 o 333 (es decir, el usuario puede ejecutar , pero no puede leer el archivo), si la capacidad de ejecución no implica automáticamente la capacidad de leer?
                    
                        permissions
                                chmod
                                
                    
                    
                        trolley813
fuente
                
                fuente

Respuestas:
He jugado con él y, al parecer, los permisos Exec no implican permisos de lectura. Binarios pueden ser ejecutables sin ser legibles:
No puedo ejecutar secuencias de comandos sin embargo, a menos que tengan tanto de lectura y bits de permiso Exec en:
fuente
/bin/bash hw.shy luego bash intenta abrirsehw.shpara leer (y falla).tiene sentido para los directorios, por ejemplo, si mantiene los archivos ejecutables (secretos) en un directorio específico y luego permite que los usuarios llamen a esos archivos sin poder ver el contenido del directorio (¡pero sabiendo que hay un archivo específico después de informarles!). 333 en comparación con 111 permite escribir / borrar archivos a / desde esos directorios sin ser capaz de ver el contenido del directorio.
fuente
Obviamente, no todas las combinaciones son tan útiles, pero para tomar el que menciona específicamente ... En realidad no necesita
readpermiso para ejecutar un archivo - solamenteexecuteel permiso - a menos que el archivo en cuestión es un script (por ejemplo, un script de shell (.sh), perl-escritura (.pl) y así sucesivamente). Los archivos binarios normales se pueden ejecutar solo con elexecutepermiso. En * BSD-systmes, varios ejecutables danexecutepermiso sin permisoread, especialmente en comandos "importantes para la seguridad", por ejemplosu.Entonces, ¿por qué no dar a los usuarios
readpermiso (y soloexecutepermiso)? ¡Porque un archivo que no puede ser leído por un usuario, tampoco puede ser copiado por ese usuario! Al eliminar elreadpermiso, se evita que los usuarios hagan sus propias copias "personales" de ejecutables, que luego pueden abusar (por ejemplo, obtenerSUID=root on).Y al no tener
writepermiso, evita que un archivo se elimine correctamente.Eso sí, no dar ni
read-niwrite-permission que el propietario es un poco raro, pero a veces puede ser una buena idea para evitar incluso elownerde simplemente borrar un archivo. Por supuesto, elowner- por no hablarroot- siempre puede eludir este tipo de medidas, si no en otras formas, a continuación, simplemente porchmodel permiso en el archivo.fuente
ownersolo eliminen un archivo". - excepto que no necesita ningún tipo de permiso en un archivo (leer, escribir o ejecutar) para eliminarlo./proc/${PID}/mapsy luego leer las secciones relevantes de la memoria/proc/${PID}/mem? ¿O restringir los permisos en el archivo ejecutable también restringe los permisos de lectura en sus secciones relevantes en la memoria durante la ejecución? (Esto último parece poco probable, OMI.)