Diferencia entre el directorio ejecutable y los archivos ejecutables

20

¿Tener un permiso ejecutable en un directorio significa que los archivos dentro de él también son ejecutables incluso si los archivos no tienen explícitamente permisos establecidos?

Programador sombrío
fuente
No. El permiso de ejecución en directores significa permiso de búsqueda (para leer los atributos del archivo y cd'ing en el directorio). Para ejecutar un archivo, debe tener permiso de ejecución en ese archivo.
ridículo
También relevante: unix.stackexchange.com/a/251302/135943
Wildcard

Respuestas:

27

No, el permiso ejecutable para directorios significa que puede ingresar al directorio, convirtiéndolo en su directorio de trabajo actual cd, y ver qué archivos contiene.

Es útil pensar en un directorio como un archivo que es una lista de nombres de archivo.

Bit de lectura : si está configurado, puede leer esta lista. Si tiene un directorio llamado libros:

  • Puede hacer lslibros y obtendrá una lista de los archivos que contiene ( -lsin embargo, no funcionará).

  • Puede usar la finalización de la línea de comandos, es decir, touch books/bo+ Tabpara obtener books/bookfile.

  • No puede hacer de los libros su directorio de trabajo, cdno funcionará.

Escribir bit : puede modificar los nombres de esta lista en él. Solo puede hacer esto si el bit de ejecución también está configurado.

Ejecutar bit : necesita este permiso si desea:

  • Tener acceso a los archivos dentro del directorio.
  • Modificar detalles de la lista misma. Puede agregar, renombrar o eliminar nombres en la lista, pero esto también requiere permiso de escritura en el directorio.

Establecer el bit de ejecución en un directorio no afecta de ninguna manera a los archivos en sí, pero sí afecta su acceso a ellos. Por ejemplo, si tiene acceso de escritura y ejecución para un directorio, puede mover, renombrar y eliminar archivos, incluso si no puede escribir en los propios archivos.

Arronico
fuente
¡Eso explica mucho en realidad! Ahora entiendo por qué algunos directorios aparecen con una superposición de fondo de color en su nombre en el emulador de terminal.
Shady Programmer
He agregado un poco de información sobre todos los permisos, pensar en un directorio como una carpeta llena de archivos no es tan útil como pensar en él como un archivo en sí mismo, que es solo una lista de archivos cuando se trata de permisos.
Arronico