Skip to content

Commit 479a4be

Browse files
committed
Changes in user management:
- Allow to specify primary gid for user - Use user.name field for setting linux username - Allow non-unique uids - Workaround file.directory bug for non-unique uids - Allow system users (Choose UID in the range of FIRST_SYSTEM_UID and LAST_SYSTEM_UID)
1 parent c6f75ef commit 479a4be

2 files changed

Lines changed: 37 additions & 16 deletions

File tree

README.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,16 @@ will be removed.
7070
full_name: 'With hased password'
7171
home: '/home/elizabeth'
7272
password: "$6$nUI7QEz3$dFYjzQqK5cJ6HQ38KqG4gTWA9eJu3aKx6TRVDFh6BVJxJgFWg2akfAA7f1fCxcSUeOJ2arCO6EEI6XXnHXxG10"
73+
someserv:
74+
name: 'someservice'
75+
enabled: true
76+
full_name: 'Some super service owner'
77+
home: '/usr/lib/someservice'
78+
home_dir_mode: 700
79+
system:true
80+
unique: false
81+
uid: 0
82+
gid: 0
7383
7484
Configure sudo for users and groups under ``/etc/sudoers.d/``.
7585
This ways ``linux.system.sudo`` pillar map to actual sudo attributes:

linux/system/user.sls

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,16 @@ include:
1616
{%- endfor %}
1717
1818
{%- if user.gid is not defined %}
19-
system_group_{{ name }}:
19+
system_group_{{ user.name }}:
2020
group.present:
21-
- name: {{ name }}
21+
- name: {{ user.name }}
2222
- require_in:
23-
- user: system_user_{{ name }}
23+
- user: system_user_{{ user.name }}
2424
{%- endif %}
2525
26-
system_user_{{ name }}:
26+
system_user_{{ user.name }}:
2727
user.present:
28-
- name: {{ name }}
28+
- name: {{ user.name }}
2929
- home: {{ user.home }}
3030
{% if user.get('password') == False %}
3131
- enforce_password: false
@@ -37,62 +37,73 @@ system_user_{{ name }}:
3737
- password: {{ user.password }}
3838
- hash_password: {{ user.get('hash_password', False) }}
3939
{% endif %}
40+
{%- if user.gid is defined %}
41+
- gid: {{ user.gid }}
42+
{%- else %}
4043
- gid_from_name: true
44+
{%- endif %}
4145
{%- if user.groups is defined %}
4246
- groups: {{ user.groups }}
4347
{%- endif %}
4448
{%- if user.system is defined and user.system %}
45-
- system: True
49+
- system: true
4650
{%- else %}
4751
- shell: {{ user.get('shell', '/bin/bash') }}
4852
{%- endif %}
49-
{%- if user.uid is defined and user.uid %}
53+
{%- if user.uid is defined %}
5054
- uid: {{ user.uid }}
5155
{%- endif %}
56+
{%- if user.unique is defined %}
57+
- unique: {{ user.unique }}
58+
{%- endif %}
5259
- require: {{ requires|yaml }}
5360
5461
system_user_home_{{ user.home }}:
5562
file.directory:
5663
- name: {{ user.home }}
57-
- user: {{ name }}
64+
{%- if user.uid is defined and user.uid == 0 %}
65+
- user: root
66+
{%- else %}
67+
- user: {{ user.name }}
68+
{%- endif %}
5869
- mode: {{ user.get('home_dir_mode', 700) }}
5970
- makedirs: true
6071
- require:
61-
- user: system_user_{{ name }}
72+
- user: system_user_{{ user.name }}
6273
6374
{%- if user.get('sudo', False) %}
6475
65-
/etc/sudoers.d/90-salt-user-{{ name|replace('.', '-') }}:
76+
/etc/sudoers.d/90-salt-user-{{ user.name|replace('.', '-') }}:
6677
file.managed:
6778
- source: salt://linux/files/sudoer
6879
- template: jinja
6980
- user: root
7081
- group: root
7182
- mode: 440
7283
- defaults:
73-
user_name: {{ name }}
84+
user_name: {{ user.name }}
7485
- require:
75-
- user: system_user_{{ name }}
86+
- user: system_user_{{ user.name }}
7687
- check_cmd: /usr/sbin/visudo -c -f
7788
7889
{%- else %}
7990
80-
/etc/sudoers.d/90-salt-user-{{ name|replace('.', '-') }}:
91+
/etc/sudoers.d/90-salt-user-{{ user.name|replace('.', '-') }}:
8192
file.absent
8293
8394
{%- endif %}
8495
8596
{%- else %}
8697
87-
system_user_{{ name }}:
98+
system_user_{{ user.name }}:
8899
user.absent:
89-
- name: {{ name }}
100+
- name: {{ user.name }}
90101
91102
system_user_home_{{ user.home }}:
92103
file.absent:
93104
- name: {{ user.home }}
94105
95-
/etc/sudoers.d/90-salt-user-{{ name|replace('.', '-') }}:
106+
/etc/sudoers.d/90-salt-user-{{ user.name|replace('.', '-') }}:
96107
file.absent
97108
98109
{%- endif %}

0 commit comments

Comments
 (0)