如何更改现有用户的密码?

问题描述 投票:0回答:2

我正在尝试使用 Ansible 更改现有用户的密码,但前提是该用户已经存在。我不想创建任何新用户。有什么好的方法吗?

vars:
myusers:
  - { name: 'user1', update_pass: 'passwd' }
  - { name: 'user2', update_pass: 'passwd' }
  - { name: 'user3', update_pass: 'passwd' }  

tasks:
- name: check exist
  shell: /usr/sbin/usermod {{ item.name }}
  with_items: myusers
  register: result
  failed_when: result.rc not in [6,2]
  changed_when: result.rc != 6

- name: change passwd
  user: name={{ item.name }} password={{ item.update_pass  }} update_password=always
  when: result|changed
  with_items: myusers
ansible ansible-2.x
2个回答
0
投票
vars_prompt:
- name: user_name
prompt: Enter the user name for password reset
private: no
- name: pass
prompt: Enter the password
tasks:
- name: Change {{ user_name }}  password
user: name={{ user_name }} password={{ pass|password_hash('sha512') }} update_password=always

0
投票
vars:
myusers:
  - { name: 'user1', update_pass: 'passwd' }
  - { name: 'user2', update_pass: 'passwd' }
  - { name: 'user3', update_pass: 'passwd' } 

# Contents of passwd will be stored in ansible_facts.getent_passwd as a dict
- name: Determine local user accounts
  getent:
    database: passwd

# Update password if user account is found in /etc/passwd
- name: change passwd
  user: name={{ item.name }} password={{ item.update_pass  }} update_password=always
  with_items: myusers
  when: item in ansible_facts.getent_passwd
© www.soinside.com 2019 - 2024. All rights reserved.