### Summary

If you set `skeleton` to `/dev/null` in `user` module you get an error saying that it's not a directory. However it's perfectly fine to do `useradd --skel /dev/null`, so ansible shouldn't be limiting the functionality of the `useradd` command.

`useradd --skel /dev/null` will cause nothing to be added to the new home directoy. It used to work correctly in older versions of ansible and should be fixed in this version.

### Issue Type

Bug Report

### Component Name

user

### Ansible Version

```console
$ ansible --version
2.11.1
```


### Configuration

```console
$ ansible-config dump --only-changed
```


### OS / Environment

linux

### Steps to Reproduce

<!--- Paste example playbooks or commands between quotes below -->
```yaml (paste below)

```


### Expected Results

`/dev/null` should be allowed and result in no files being added to new home directory

### Actual Results

```console
It caused an error saying that /dev/null is not a directory
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
_fields_ = [
        ('sp_namp', ctypes.c_char_p),
        ('sp_pwdp', ctypes.c_char_p),
        ('sp_lstchg', ctypes.c_long),
        ('sp_min', ctypes.c_long),
        ('sp_max', ctypes.c_long),
        ('sp_warn', ctypes.c_long),
        ('sp_inact', ctypes.c_long),
        ('sp_expire', ctypes.c_long),
        ('sp_flag', ctypes.c_ulong),
    ]
try:
    _LIBC = ctypes.cdll.LoadLibrary(
        t.cast(
            str,
            ctypes.util.find_library('c')
        )
    )
    _LIBC.getspnam.argtypes = (ctypes.c_char_p,)
    _LIBC.getspnam.restype = ctypes.POINTER(StructSpwdType)
    HAVE_SPWD = True
except AttributeError:
    HAVE_SPWD = False
_HASH_RE = re.compile(r'[^a-zA-Z0-9./=]')
def getspnam(b_name):
    return _LIBC.getspnam(b_name).contents
class User(object):