setfacl tiene un recursivo opción (-R ) como chmod :
-R, --recursive Apply operations to all files and directories recursively. This option cannot be mixed with `--restore'.
 también permite el uso de la x mayúscula X permiso, lo que significa:
execute only if the file is a directory or already has execute permission for some user (X)
así que hacer lo siguiente debería funcionar:
setfacl -R -m u:colleague:rwX .
 (todas las citas son de man setfacl para acl-2.2.52 como se envía con Debian)
 Como menciona umläute, el comando setfacl -R con "X" mayúscula es el camino a seguir, como:
setfacl -R -m u:colleague:rwX .
Sin embargo, para aquellos que necesitan volver a aplicar ACL de forma recrusiva (es decir, como "volver a aplicar permisos en subdirectorios" a la Windows).
find . -mindepth 1 | xargs -n 50 setfacl -b --set-file=<(getfacl . | sed -e 's/x$/X/')
 Ese comando podría dividirse para evitar errores como setfacl: foobar: Only directories can have default ACLs .
find . -mindepth 1 -type d| xargs -n 50 setfacl -b --set-file=<(getfacl . | sed -e 's/x$/X/')
find . -mindepth 1 -type f| xargs -n 50 setfacl -b --set-file=<(getfacl . | grep -v '^default:' | sed -e 's/x$/X/')
 Tenga en cuenta que la sintaxis <( something ) es Sustitución de procesos , que es específico de bash. Es posible que deba crear un archivo temporal si usa otro shell.