我设置了一个共享的 git 存储库,用户使用ssh
协议从中提取。
我想以一种只有特定用户组(例如git_group
)中的用户可以访问存储库的方式设置权限。我可以使用以下方法使该组可以访问创建的文件:
chmod g+s
。递归:find . -type d print0 | xargs -0 chmod g+s
。sudo setfacl -R -m g:git_group:rwx .
和sudo setfacl -R -d -m g:git_group:rwx .
这一切似乎都很好,直到您从git_group
. 当该用户推送提交时,他们成为 git 存储库中某些文件的所有者。从组中移除后,该用户仍然可以修改这些文件,并且某些 git 命令仍然可能会成功。
更改 git 存储库中所有文件的所有者将拒绝用户访问存储库,但是是否可以设置存储库以便仅通过将用户从组中删除来拒绝用户访问?
据我所知,使用基本的 linux 文件权限,组被授予比所有者更多的权限会导致未定义的行为。