mirror of https://github.com/ansible/ansible.git
user - consistently create user home directory on Linux (#71952)
Always use create_homedir when we are asked to create a home directory in the User class. Don't use the -m and -k parameters from useradd / luseradd as they behave differently with respect to preexisting home directories. Instead always specify -M to ensure that useradd / luseradd do not try to create the home directory. This does not change potential different behaviours in child classes of the User class. Consider the new umask option from #73821 in create_homedir as well as we do not let luseradd / useradd create the home directory any longer.pull/74628/head
parent
2e97240c67
commit
2f7e0b8489
@ -0,0 +1,4 @@
|
|||||||
|
bugfixes:
|
||||||
|
- >-
|
||||||
|
user - properly create home path on Linux when ``local: yes`` and parent directories
|
||||||
|
specified in ``home`` do not exist (https://github.com/ansible/ansible/pull/71952/)
|
@ -0,0 +1,56 @@
|
|||||||
|
---
|
||||||
|
# Create a new local user account with a path that has parent directories that do not exist
|
||||||
|
- name: Create local user with home path that has parents that do not exist
|
||||||
|
user:
|
||||||
|
name: ansibulluser2
|
||||||
|
state: present
|
||||||
|
local: yes
|
||||||
|
home: "{{ user_home_prefix[ansible_facts.system] }}/in2deep/ansibulluser2"
|
||||||
|
register: create_home_local_with_no_parent_1
|
||||||
|
tags:
|
||||||
|
- user_test_local_mode
|
||||||
|
|
||||||
|
- name: Create local user with home path that has parents that do not exist again
|
||||||
|
user:
|
||||||
|
name: ansibulluser2
|
||||||
|
state: present
|
||||||
|
local: yes
|
||||||
|
home: "{{ user_home_prefix[ansible_facts.system] }}/in2deep/ansibulluser2"
|
||||||
|
register: create_home_local_with_no_parent_2
|
||||||
|
tags:
|
||||||
|
- user_test_local_mode
|
||||||
|
|
||||||
|
- name: Check the created home directory
|
||||||
|
stat:
|
||||||
|
path: "{{ user_home_prefix[ansible_facts.system] }}/in2deep/ansibulluser2"
|
||||||
|
register: home_local_with_no_parent_3
|
||||||
|
tags:
|
||||||
|
- user_test_local_mode
|
||||||
|
|
||||||
|
- name: Ensure user with non-existing parent paths was created successfully
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- create_home_local_with_no_parent_1 is changed
|
||||||
|
- create_home_local_with_no_parent_1.home == user_home_prefix[ansible_facts.system] ~ '/in2deep/ansibulluser2'
|
||||||
|
- create_home_local_with_no_parent_2 is not changed
|
||||||
|
- home_local_with_no_parent_3.stat.uid == create_home_local_with_no_parent_1.uid
|
||||||
|
- home_local_with_no_parent_3.stat.gr_name == default_local_user_group[ansible_facts.distribution] | default('ansibulluser2')
|
||||||
|
tags:
|
||||||
|
- user_test_local_mode
|
||||||
|
|
||||||
|
- name: Cleanup test account
|
||||||
|
user:
|
||||||
|
name: ansibulluser2
|
||||||
|
home: "{{ user_home_prefix[ansible_facts.system] }}/in2deep/ansibulluser2"
|
||||||
|
state: absent
|
||||||
|
local: yes
|
||||||
|
remove: yes
|
||||||
|
tags:
|
||||||
|
- user_test_local_mode
|
||||||
|
|
||||||
|
- name: Remove testing dir
|
||||||
|
file:
|
||||||
|
path: "{{ user_home_prefix[ansible_facts.system] }}/in2deep/"
|
||||||
|
state: absent
|
||||||
|
tags:
|
||||||
|
- user_test_local_mode
|
Loading…
Reference in New Issue