Как сделать каталог рекурсивно доступным для чтения / записи группе пользователей?
ПРОБЛЕМА:
Это каталог, используемый apache, поэтому права доступа должны быть довольно строгими. Единственный способ заставить его работать должным образом - это смонтировать каталог как общий ресурс nfs, в результате чего uid и gid будут установлены для определенной группы и uid. Но это похоже на взлом и позволяет любому изменять содержимое, хотя apache тогда имеет довольно строгие права доступа к «настоящему» каталогу.
ЧТО Я ПРОВЕРИЛ:
Я пробовал бит setgid, который не работает при копировании каталогов через scp. Даже после попытки установить umask в 6 разных местах. И я установил и смонтировал разделы для использования acl, у которого была такая же проблема с правами группы при копировании с помощью scp / sftp.
Это действительно расстраивает, так как кажется такой простой и серьезной проблемой, для которой я не нашел удовлетворительного решения. Надеюсь, мне здесь не хватает чего-то очевидного. В основном используется сжатие Debian.
Решение с помощью chmod g + s и принудительной установки umasks работает достаточно хорошо. Вы принудительно использовали маску подсистемы sftp в файле sshd_config?
Subsystem sftp internal-sftp -u 0002
Если вам нужна гибкость для sftp, вы можете попробовать mysecureshell. У него есть такие варианты разрешений, как:
DirFakeUser # Скрыть реального владельца файла / каталога (просто измените отображаемые разрешения)
DirFakeGroup # Скрыть реальную группу файлов / каталогов (просто измените отображаемые разрешения)
DirFakeMode # Скрыть реальные права на файл / каталог (просто измените отображаемые разрешения)
ForceGroup