##### SUMMARY
When installing a collection, all files are created with mode 0600. This is caused by the way the collection .tar.gz file is extracted: https://github.com/ansible/ansible/blob/d3ec31f8d5683926aa6a05bb573d9929a6266fac/lib/ansible/galaxy/collection.py#L1076-L1090 The file created by `tempfile.NamedTemporaryFile()` seems to have mode `0600` and is simply moved to the final destination without a following `os.chmod`.

(See also this discussion: https://github.com/ansible-collections/community.general/pull/29#discussion_r396147440)

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
lib/ansible/galaxy/collection.py

##### ANSIBLE VERSION
```
2.9
2.10
```

for func_name in [f for f in dir(GalaxyCLI) if f.startswith("execute_")]:
        monkeypatch.setattr(GalaxyCLI, func_name, MagicMock())
    cli = GalaxyCLI(args=cli_args)
    cli.run()
    assert context.CLIARGS['verbosity'] == expected
@pytest.fixture()
def collection_skeleton(request, tmp_path_factory):
    name, skeleton_path = request.param
    galaxy_args = ['ansible-galaxy', 'collection', 'init', '-c']
    if skeleton_path is not None:
        galaxy_args += ['--collection-skeleton', skeleton_path]
    test_dir = to_text(tmp_path_factory.mktemp('test-ÅÑŚÌβŁÈ Collections'))
    galaxy_args += ['--init-path', test_dir, name]
    GalaxyCLI(args=galaxy_args).run()
    namespace_name, collection_name = name.split('.', 1)
    collection_dir = os.path.join(test_dir, namespace_name, collection_name)
    return collection_dir
@pytest.mark.parametrize('collection_skeleton', [
    ('ansible_test.my_collection', None),
], indirect=True)
def test_collection_default(collection_skeleton):