недавно озаботился этим вопросом и остановился на связке default permission + бит SGID
default permission устанавливает нужные права на новые файлы и папки внутри родителя (приоритетнее umask пользователя но не самбы к сожалению что важно) - аналог наследования в NTFS
бит SGID присваивает нужную группу на новые файлы и папки внутри родителя
Таким образом один раз настроив корневые папки в дальнейшем управление доступом происходит через добавление/удаление пользователей в/из группы
Такая схема проста для понимания, видимости (не нужно использовать getfacl постоянно, достаточно ls) и управления.
Из минусов: при необходимости реализации сложных схем доступа, где используется множество пользователей придется создавать бесчисленное кол-во групп что в конечном счете из плюса превратиться в минус, поэтому данная схема больше подходит для достаточно простых схем
PS: маску в ACL до конца я как-то не понял и связываться с ней не стал, так же не стал использовать в полной мере ACL т.к. считаю оправдывается оно только в случае больших и сложных систем
PS2: Все не читал, но мельком видел в статье советы по использованию ключиков типа -R, --recursive. В некоторых случаях это нормально, но я предпочитаю использовать find с опцией -exec. Так гибче - с помощью поиска я могу найти то, что мне нужно и наложить на найденное действие. Например:
find /share/dir1 -type d -exec setfacl -d -m user::rwx,group::rwx,other:--- {} \;
find /share/dir1/svalka -type f -name '*.doc' -user username -exec chmod 664 {} \;