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

expected_role_dirs = ('defaults', 'files', 'handlers', 'meta', 'tasks', 'templates', 'vars', 'tests')
    @classmethod
    def setUpRole(cls, role_name, galaxy_args=None, skeleton_path=None, use_explicit_type=False):
        if galaxy_args is None:
            galaxy_args = []
        if skeleton_path is not None:
            cls.role_skeleton_path = skeleton_path
            galaxy_args += ['--role-skeleton', skeleton_path]
        
        cls.test_dir = tempfile.mkdtemp()
        if not os.path.isdir(cls.test_dir):
            os.makedirs(cls.test_dir)
        cls.role_dir = os.path.join(cls.test_dir, role_name)
        cls.role_name = role_name
        
        args = ['ansible-galaxy']
        if use_explicit_type:
            args += ['role']
        args += ['init', '-c', '--offline'] + galaxy_args + ['--init-path', cls.test_dir, cls.role_name]
        gc = GalaxyCLI(args=args)
        gc.run()
        cls.gc = gc
        if skeleton_path is None:
            cls.role_skeleton_path = gc.galaxy.default_role_skeleton_path
    @classmethod
    def tearDownClass(cls):