sudo
组中而不替换该用户现有的组。#1 楼
根据用户模块,您可以使用以下命令:- name: Adding user {{ user }}
user: name={{ user }}
group={{ user }}
shell=/bin/bash
password=${password}
groups=sudo
append=yes
创建时,您只需添加
groups=groupname
和append=yes
即可将它们添加到现有用户中#2 楼
如果系统中已经存在{{ user }}
,则应使用以下命令将其添加到组中:- name: adding existing user '{{ user }}' to group sudo
user:
name: '{{ user }}'
groups: sudo
append: yes
要将其添加到一组组中,可以使用一个逗号分隔的列表,例如
groups: admin,sudo
。请注意,如果省略
append: yes
,则根据usermod手册页,您的用户将从所有其他组中删除。如果要使用用户应属于的特定组列表,这将很有用。评论
…并当心不要写组:不带s,因为这会改变主GID。
– Serge Stroobandt
17年6月15日在20:01
...,请注意,如果用户不存在,它将被创建!
–EM0
19年1月24日在14:03
@ EM0是的,应该在用户模块不存在的情况下创建用户,但是,如果用户试图修改甚至不应该存在的用户,则用户应查看其代码。
– Teresa e Junior
19年1月24日在16:48
#3 楼
请注意,在最近的Ansible版本(https://github.com/ansible/ansible/blob/c600ab81ee/lib/ansible/playbook/play_context.py#L46-L55)中,{{ user }}
已更改为{{ ansible_user }}
。另外,您也可以使用ansible_ssh_user
-相同。因此,Teresa e Junior的更新代码如下:- name: adding existing user "{{ ansible_user }}" to group sudo
user:
name: "{{ ansible_user }}"
groups: sudo
append: yes
become: yes
更多修复:
使用双引号使变量扩展
添加
become: yes
,因为它需要管理权限才能更改组文件
评论
谢谢,append = yes确实是我想要的!
–vdboor
13-10-26在9:21
似乎存在一个问题:如果用户已经存在,而我只想将其添加到组或从组中删除该怎么办?我不确定100%,但是我认为只有在创建用户时才考虑“ group”属性。
– jlecour
16年7月19日在15:41
我确实有一个问题,那就是被接受的答案,因为该问题并未指出“创建用户并将其添加到特定组”。如果由于问题的标题来自Google搜索,我们很可能希望将现有用户添加到组中。
–丹尼尔F
18年8月27日在11:06
使用“ local = yes”时该怎么做?
– KumZ
20-04-28在13:53