Code

t/t1304: set the Default ACL base entries
authorBrandon Casey <drafnel@gmail.com>
Mon, 15 Mar 2010 17:14:34 +0000 (12:14 -0500)
committerJunio C Hamano <gitster@pobox.com>
Wed, 17 Mar 2010 02:05:57 +0000 (19:05 -0700)
According to the Linux setfacl man page, in order for an ACL to be valid,
the following rules must be satisfied:

   * Whenever an ACL contains any Default ACL entries, the three Default
     ACL base entries (default owner, default group, and default others)
     must also exist.

   * Whenever a Default ACL contains named user entries or named group
     objects, it must also contain a default effective rights mask.

Some implementations of setfacl (Linux) do this automatically when
necessary, some (Solaris) do not.  Solaris's setfacl croaks when trying to
create a default user ACL if the above rules are not satisfied.  So, create
them before modifying the default user ACL's.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t1304-default-acl.sh

index 415a2dd3ceb0903b2bb4d4af0431629ed1757c21..3a1532be553fefdb322f34a84e001b705f687c01 100755 (executable)
@@ -45,6 +45,7 @@ check_perms_and_acl () {
 dirs_to_set="./ .git/ .git/objects/ .git/objects/pack/"
 
 test_expect_success 'Setup test repo' '
+       setfacl -m d:u::rwx,d:g::---,d:o:---,d:m:rwx $dirs_to_set &&
        setfacl -m u:root:rwx          $dirs_to_set &&
        setfacl -m d:u:"$LOGNAME":rwx  $dirs_to_set &&
        setfacl -m d:u:root:rwx        $dirs_to_set &&