107 lines
2.8 KiB
YAML
107 lines
2.8 KiB
YAML
|
## create user without home and test fallback home dir create
|
||
|
|
||
|
- name: Test home directory creation
|
||
|
when: ansible_facts.system != 'Darwin'
|
||
|
block:
|
||
|
- name: create the user
|
||
|
user:
|
||
|
name: ansibulluser
|
||
|
|
||
|
- name: delete the user and home dir
|
||
|
user:
|
||
|
name: ansibulluser
|
||
|
state: absent
|
||
|
force: true
|
||
|
remove: true
|
||
|
|
||
|
- name: create the user without home
|
||
|
user:
|
||
|
name: ansibulluser
|
||
|
create_home: no
|
||
|
|
||
|
- name: create the user home dir
|
||
|
user:
|
||
|
name: ansibulluser
|
||
|
register: user_create_home_fallback
|
||
|
|
||
|
- name: stat home dir
|
||
|
stat:
|
||
|
path: '{{ user_create_home_fallback.home }}'
|
||
|
register: user_create_home_fallback_dir
|
||
|
|
||
|
- name: read UMASK from /etc/login.defs and return mode
|
||
|
shell: |
|
||
|
import re
|
||
|
import os
|
||
|
try:
|
||
|
for line in open('/etc/login.defs').readlines():
|
||
|
m = re.match(r'^UMASK\s+(\d+)$', line)
|
||
|
if m:
|
||
|
umask = int(m.group(1), 8)
|
||
|
except:
|
||
|
umask = os.umask(0)
|
||
|
mode = oct(0o777 & ~umask)
|
||
|
print(str(mode).replace('o', ''))
|
||
|
args:
|
||
|
executable: "{{ ansible_python_interpreter }}"
|
||
|
register: user_login_defs_umask
|
||
|
|
||
|
- name: validate that user home dir is created
|
||
|
assert:
|
||
|
that:
|
||
|
- user_create_home_fallback is changed
|
||
|
- user_create_home_fallback_dir.stat.exists
|
||
|
- user_create_home_fallback_dir.stat.isdir
|
||
|
- user_create_home_fallback_dir.stat.pw_name == 'ansibulluser'
|
||
|
- user_create_home_fallback_dir.stat.mode == user_login_defs_umask.stdout
|
||
|
|
||
|
- name: Create non-system user
|
||
|
when: ansible_facts.distribution == "MacOSX"
|
||
|
block:
|
||
|
- name: create non-system user on macOS to test the shell is set to /bin/bash
|
||
|
user:
|
||
|
name: macosuser
|
||
|
register: macosuser_output
|
||
|
|
||
|
- name: validate the shell is set to /bin/bash
|
||
|
assert:
|
||
|
that:
|
||
|
- 'macosuser_output.shell == "/bin/bash"'
|
||
|
|
||
|
- name: cleanup
|
||
|
user:
|
||
|
name: macosuser
|
||
|
state: absent
|
||
|
|
||
|
- name: create system user on macOS to test the shell is set to /usr/bin/false
|
||
|
user:
|
||
|
name: macosuser
|
||
|
system: yes
|
||
|
register: macosuser_output
|
||
|
|
||
|
- name: validate the shell is set to /usr/bin/false
|
||
|
assert:
|
||
|
that:
|
||
|
- 'macosuser_output.shell == "/usr/bin/false"'
|
||
|
|
||
|
- name: cleanup
|
||
|
user:
|
||
|
name: macosuser
|
||
|
state: absent
|
||
|
|
||
|
- name: create non-system user on macos and set the shell to /bin/sh
|
||
|
user:
|
||
|
name: macosuser
|
||
|
shell: /bin/sh
|
||
|
register: macosuser_output
|
||
|
|
||
|
- name: validate the shell is set to /bin/sh
|
||
|
assert:
|
||
|
that:
|
||
|
- 'macosuser_output.shell == "/bin/sh"'
|
||
|
|
||
|
- name: cleanup
|
||
|
user:
|
||
|
name: macosuser
|
||
|
state: absent
|