##### 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
```

collection_path, collection_tar = collection_artifact
    temp_path = os.path.split(collection_tar)[0]
    mock_display = MagicMock()
    monkeypatch.setattr(Display, 'display', mock_display)
    # If we don't delete collection_path it will think the original build skeleton is installed so we expect a skip
    collection.install_collections([(to_text(collection_tar), '*', None,)], to_text(temp_path),
                                   [u'https://galaxy.ansible.com'], True, False, False, False, False)
    assert os.path.isdir(collection_path)
    actual_files = os.listdir(collection_path)
    actual_files.sort()
    assert actual_files == [b'README.md', b'docs', b'galaxy.yml', b'playbooks', b'plugins', b'roles']
    # Filter out the progress cursor display calls.
    display_msgs = [m[1][0] for m in mock_display.mock_calls if 'newline' not in m[2] and len(m[1]) == 1]
    assert len(display_msgs) == 4
    # Msg1 is the warning about not MANIFEST.json, cannot really check message as it has line breaks which varies based
    # on the path size
    assert displcess install dependency map"
    assert display_msgs[2] == "Starting collection install process"
    assert display_msgs[3] == "Skipping 'ansible_namespace.collection' as it is already installed"
# Makes sure we don't get stuck in some recursive loop
@pytest.mark.parametrize('collection_artifact', [
    {'ansible_namespace.collection': '>=0.0.1'},
], indirect=True)
def test_install_collection_with_circular_dependency(collection_artifact, monkeypatch):