Назад | Перейти на главную страницу

ACL несколько групп по умолчанию?

Можно ли с помощью 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/temp
seems 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 будет удобен для рекурсивного перехода по существующим каталогам с внесением необходимых изменений.