Можно ли с помощью Linux ACL создать несколько групп с доступом к папке по умолчанию? Я хочу это для совместного использования репозиториев кода между разными группами кодирования + несколькими процессами. Я считаю, что если пользователь из одной группы создает содержимое внутри общего репозитория, даже если владельцем является этот пользователь, разрешения по умолчанию распространяются на этот новый файл, и другие пользователи все еще могут получить доступ к содержимому.
Вот что я пробовал как root:
mkdir /tmp/temp chmod 770 /tmp/temp setfacl -dm g:www-data:r-x,g:sambashare:r-x /tmp/temp getfacl /tmp/temp # file: temp # owner: root # group: root user::rwx group::rwx other::--- default:user::rwx default:group::rwx default:group:www-data:r-x default:group:sambashare:r-x default:mask::rwx default:other::---
Как тестовый пользователь
id uid=1004(testuser) gid=1007(testuser) groups=1007(testuser),110(sambashare) cd /tmp/temp bash: cd: temp: Permission denied
Так что явно не работает, как я ожидал. Может ли кто-нибудь помочь мне понять, почему он не работает и как я могу это исправить?
P.S. Я устанавливаю разрешения группы по умолчанию вместо обычного разрешения группы, потому что они должны распространяться на детей.
setfacl -m g:sambashare:r-x /tmp/tempseems to work to grant access.
Спасибо.
Попробуйте бежать setfacl -Rdm g:www-data:r-x,g:sambashare:r-x /tmp/temp
и setfacl -Rm g:www-data:r-x,g:sambashare:r-x /tmp/temp
. Опция d устанавливает значения по умолчанию для новых файлов и каталогов, но не изменяет существующие настройки, поскольку видно, что только root: root имеет доступ. -R будет удобен для рекурсивного перехода по существующим каталогам с внесением необходимых изменений.