Вот как это сделать, используя списки ACL по умолчанию, по крайней мере, в Linux.
Во-первых, вам может нужно включить поддержку ACL в вашей файловой системе. Если вы используете ext4, то он уже включен. Другие файловые системы (например, ext3) должны быть смонтированы с опцией acl
. В этом случае добавьте эту опцию к вашему /etc/fstab
. Например, если каталог находится в вашей корневой файловой системе:
/dev/mapper/qz-root / ext3 errors=remount-ro,acl 0 1
Затем перемонтируйте его:
mount -oremount /
Теперь используйте следующую команду для установки ACL по умолчанию:
setfacl -dm u::rwx,g::rwx,o::r /shared/directory
Все новые файлы в /shared/directory
теперь должны получить нужные разрешения. Конечно, это также зависит от приложения, создающего файл. Например, большинство файлов с самого начала не могут быть исполняемыми кем-либо (в зависимости от аргумента mode для вызова open (2) или creat (2)), как при использовании umask. Некоторые утилиты, такие как cp
, tar
и rsync
, будут пытаться сохранить разрешения исходных файлов, которые будут маскировать ваш ACL по умолчанию, если исходный файл не был доступен для записи в группах.
Надеюсь, это поможет!