t/lib-git.sh: fix ACL-related permissions failure
commit7140c4988fba56367f07674f658bc56bbc8e593c
authorAdam Dinwoodie <adam@dinwoodie.org>
Fri, 5 Nov 2021 19:31:06 +0000 (5 19:31 +0000)
committerJunio C Hamano <gitster@pobox.com>
Fri, 5 Nov 2021 20:44:37 +0000 (5 13:44 -0700)
tree215db322d6682b16a5b511765bd8552d5d446b3f
parent1bfb57f642d34dc4b65be3602bb429abd9f32b58
t/lib-git.sh: fix ACL-related permissions failure

As well as checking that the relevant functionality is available, the
GPGSSH prerequisite check creates the SSH keys that are used by the test
functions it gates.  If these keys are created in a directory that
has a default Access Control List, the key files can inherit those
permissions.

This can result in a scenario where the private keys are created
successfully, so the prerequisite check passes and the tests are run,
but the key files have permissions that are too permissive, meaning
OpenSSH will refuse to load them and the tests will fail.

To avoid this happening, before creating the keys, clear any default ACL
set on the directory that will contain them.  This step allowed to fail;
if setfacl isn't present, that's a very likely indicator that the
filesystem in question simply doesn't support default ACLs.

Helped-by: Fabian Stelzer <fs@gigacodes.de>
Signed-off-by: Adam Dinwoodie <adam@dinwoodie.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/lib-gpg.sh