[PATCH 1/4] Add a testcase for ACL with restrictive umask.
- From
Matthieu Moy <matthieu.moy@imag.fr>
- Date
- Feb 19, 2010, 16:33 UTC
- Message-ID
- <1266597207-32036-2-git-send-email-Matthieu.Moy@imag.fr>
- In-Reply-To
- <1266597207-32036-1-git-send-email-Matthieu.Moy@imag.fr>
Right now, Git creates unreadable pack files on non-shared repositories when the user has a umask of 077, even when the default ACLs for the directory would give read/write access to a specific user.
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> --- t/t1304-default-acl.sh | 49 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 49 insertions(+), 0 deletions(-) create mode 100755 t/t1304-default-acl.sh
diff --git a/t/t1304-default-acl.sh b/t/t1304-default-acl.sh new file mode 100755 index 0000000..4ee44a1 --- /dev/null +++ b/t/t1304-default-acl.sh @@ -0,0 +1,49 @@ +#!/bin/sh +# +# Copyright (c) 2010 Matthieu Moy +# + +test_description='Test repository with default ACL' + +. ./test-lib.sh + +# We need an arbitrary other user give permission to using ACLs. root +# is a good candidate: exists on all unices, and it has permission +# anyway, so we don't create a security hole running the testsuite. + +if ! setfacl -Rm u:root:rwx .; then + say "Skipping ACL tests: unable to use setfacl" + test_done +fi + +setfacl -Rm d:u:"$LOGNAME":rwx . +setfacl -Rm d:u:root:rwx . + +touch file.txt +git add file.txt +git commit -m "init" + +modebits () { + ls -l "$1" | sed -e 's|^\(..........\).*|\1|' +} + +test_expect_failure 'git gc does not break ACLs with restrictive umask' ' + umask 077 && + git gc && + actual=$(modebits .git/objects/pack/*.pack) && + case "$actual" in + -r--r-----*) + : happy + ;; + *) + false + ;; + esac && + getfacl .git/objects/pack/*.pack > actual && + grep -q "user:root:rwx" actual && + grep -q "user:${LOGNAME}:rwx" actual && + grep -q "mask::r--" actual && + grep -q "group::---" actual +' + +test_done
-- 1.7.0.rc2.4.gc602c4