Linux не поддерживает наследование разрешений, поэтому вы не можете делать то, что задали в теме вопроса.
Лучшее, что вы можете сделать, это установить POSIX ACL по умолчанию который будет применяться ко всем вновь созданным файлам и каталогам. Это не наследование, просто значение по умолчанию:
setfacl -m по умолчанию:пользователь:<имя пользователя>:rwx <каталог>
setfacl -m по умолчанию:группа:<имя группы>:rwx <каталог>
После этого, если кто-либо создаст файл или каталог (если, конечно, им разрешено создавать там объекты), этот объект получит дополнительный ACL. пользователь:<имя пользователя>:rwx
и группа:<имя_группы>:rwx
. Вы можете установить разрешения по умолчанию для владельца и владельца группы, установив <username>
и <groupname>
пустой.
Это «по умолчанию» может быть установлено только для каталога, потому что нет смысла применять это к файлам. Разрешения, установленные таким образом, также маскируются с помощью umask, поэтому, если в umask пропущен какой-либо бит, этот бит будет удален из разрешения. Например, когда вы создаете файл, если вы не укажете ему исполняемый бит, он не станет исполняемым (как и ожидалось). Для созданных подкаталогов также будут установлены те же списки ACL «по умолчанию», поэтому для его потомков также будут установлены эти списки ACL. Вы должны удалить или изменить ACL для подкаталогов после создания, чтобы остановить это распространение.
Проверьте ACL с помощью getfacl <каталог>
. Конечно, таких значений по умолчанию может быть несколько (и, кажется, в итоге должно получиться несколько правил); по крайней мере, требования, с которыми я сталкивался, всегда требовали наличия как минимум двух групп ACL по умолчанию).
Ты не можем установите «владельцев файлов по умолчанию» таким образом, владелец всегда будет настроен на создание эффективного uid процесса. По умолчанию, group-owner будет настроен на обработку gid, но вы можете изменить это с помощью setgid бит в родительском каталоге:
chmod g+s <каталог>
после этого любой объект, созданный в этом каталоге, по умолчанию будет копировать свою группу-владельца, даже если создающий пользователь не принадлежит к этой группе. Этот бит setgit распространяется на подкаталоги.
Владельцы могут установить group-owner для любой группы, к которой они принадлежат. Если они не принадлежат к группе, полученной с помощью setgid, они могут изменить свою файловую группу-владельца на любую группу, к которой они принадлежат, но после этого они не смогут изменить ее обратно на значение setgid.
Хочу еще раз особо отметить, что это нет наследование, это установка значений по умолчанию, что не совсем то же самое. Если вы впоследствии что-то измените в родительском объекте, уже созданные объекты всегда сохранят свои разрешения в Linux.
В то время как, например, в Windows, когда вы устанавливаете для списков управления доступом подобъектов значение «наследовать», изменение родительских списков управления доступом повлияет на потомков, что является правильным наследованием.