### Summary

In the file `lib/ansible/plugins/action/__init__.py` there’s a link to document _Understanding privilege escalation: become_. The link has an anchor that refers to the section _Risks of becoming an unprivileged user_. However, there is an error in the code that makes the URL incorrect.

The correct URL is: https://docs.ansible.com/ansible-core/2.15/playbook_guide/playbooks_privilege_escalation.html#risks-of-becoming-an-unprivileged-user

The URL that is displayed to the user is: https://docs.ansible.com/ansible-core/2.15/playbook_guide/playbooks_privilege_escalation.html#risks-of-becoming-an-unprivileged-user#risks-of-becoming-an-unprivileged-user

The error is that the anchor part of the URL gets repeated.

### Suggested solution

`become_link` is currently defined like this:

`become_link = get_versioned_doclink('playbook_guide/playbooks_privilege_escalation.html#risks-of-becoming-an-unprivileged-user')`

One option could be to instead define it like this:

`become_link = get_versioned_doclink('playbook_guide/playbooks_privilege_escalation.html')`

I believe this would work since the anchor part (currently) gets added when `become_link` is referenced.

Another solution could be to omit the anchor part when referencing `become_link`. Example:

```
display.warning(
    'Using world-readable permissions for temporary files Ansible '
    'needs to create when becoming an unprivileged user. This may '
    'be insecure. For information on securing this, see %s'
    % become_link)
```

### Issue Type

Bug Report

### Component Name

lib

### Ansible Version

```console
$ ansible --version
ansible [core 2.15.3]
  config file = None
  configured module search path = ['/Users/carl.winback/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /opt/homebrew/Cellar/ansible/8.3.0/libexec/lib/python3.11/site-packages/ansible
  ansible collection location = /Users/carl.winback/.ansible/collections:/usr/share/ansible/collections
  executable location = /opt/homebrew/bin/ansible
  python version = 3.11.5 (main, Aug 24 2023, 15:09:45) [Clang 14.0.3 (clang-1403.0.22.14.1)] (/opt/homebrew/Cellar/ansible/8.3.0/libexec/bin/python)
  jinja version = 3.1.2
  libyaml = True
```


### Configuration

```console
# if using a version older than ansible-core 2.12 you should omit the '-t all'
$ ansible-config dump --only-changed -t all
CONFIG_FILE() = None
EDITOR(env: EDITOR) = emacsclient
```


### OS / Environment

macOS Ventura 13.5.1

### Steps to Reproduce

<!--- Paste example playbooks or commands between quotes below -->
```
- name: foo
  ansible.builtin.shell: echo "hello"
  become: yes
  become_user: johndoe
```


### Expected Results

I expected the documentation link to look like this: https://docs.ansible.com/ansible-core/2.15/playbook_guide/playbooks_privilege_escalation.html#risks-of-becoming-an-unprivileged-user

### Actual Results

```console
fatal: [foo.example.com]: FAILED! => {"msg": "Failed to set permissions on the temporary files Ansible needs to create when becoming an unprivileged user (rc: 1, err: chmod: invalid mode: ‘A+user:johndoe:rx:allow’\nTry 'chmod --help' for more information.\n}). For information on working around this, see https://docs.ansible.com/ansible-core/2.15/playbook_guide/playbooks_privilege_escalation.html#risks-of-becoming-an-unprivileged-user#risks-of-becoming-an-unprivileged-user"}
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
(ansible_common_remote_group is set AND the chgrp (or following chmod)
          returned non-zero), we can set the file to be world readable so that
          the second unprivileged user can read the file.
          Since this could allow other users to get access to private
          information we only do this if ansible is configured with
          "allow_world_readable_tmpfiles" in the ansible.cfg. Also note that
          when ansible_common_remote_group is set this final fallback is very
          unlikely to ever be triggered, so long as chgrp was successful. But
          just because the chgrp was successful, does not mean Ansible can
          necessarily access the files (if, for example, the variable was set
          to a group that remote_user is in, and can chgrp to, but does not have
          in common with become_user).
        """
        if remote_user is None:
            remote_user = self._get_remote_user()
        
        if getattr(self._connection._shell, "_IS_WINDOWS", False):
            
            
            
            return remote_paths
        
        
        if not self._is_become_unprivileged():
            if execute:
                
                
                res = self._remote_chmod(remote_paths, 'u+x')
                if res['rc'] != 0:
                    raise AnsibleError(