Skip to content

Commit 7140c49

Browse files
me-andgitster
authored andcommitted
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 <[email protected]> Signed-off-by: Adam Dinwoodie <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 1bfb57f commit 7140c49

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

t/lib-gpg.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ test_lazy_prereq GPGSSH '
106106
test $? = 0 || exit 1;
107107
mkdir -p "${GNUPGHOME}" &&
108108
chmod 0700 "${GNUPGHOME}" &&
109+
(setfacl -k "${GNUPGHOME}" 2>/dev/null || true) &&
109110
ssh-keygen -t ed25519 -N "" -C "git ed25519 key" -f "${GPGSSH_KEY_PRIMARY}" >/dev/null &&
110111
echo "\"principal with number 1\" $(cat "${GPGSSH_KEY_PRIMARY}.pub")" >> "${GPGSSH_ALLOWED_SIGNERS}" &&
111112
ssh-keygen -t rsa -b 2048 -N "" -C "git rsa2048 key" -f "${GPGSSH_KEY_SECONDARY}" >/dev/null &&

0 commit comments

Comments
 (0)