【问题标题】:Allow user to set password after creating account using Ansible允许用户在使用 Ansible 创建帐户后设置密码
【发布时间】:2016-11-24 03:48:24
【问题描述】:

我有以下剧本,用于在 Ubuntu 16.04 主机上创建新用户:

---
- hosts: all 
  become: yes 
  become_method: sudo
  tasks:
  - name: Create user guybrush
    user: name=guybrush comment="Guybrush Threepwood" shell=/bin/bash groups=pirates append=yes

  - name: Copy SSH key for guybrush
    authorized_key: user=guybrush key={{ lookup("file", "/home/guybrush/.ssh/id_rsa.pub") }}

但是,当我以新用户身份登录并尝试使用 passwd 设置我的密码时,系统会要求我输入我的(当前)UNIX 密码。鉴于没有为用户设置密码,我不知道为什么要我输入密码。

如何修复我的 playbook,以便新创建的用户在第一次登录后可以轻松设置密码?

【问题讨论】:

  • 您正在使用基于密钥的身份验证创建用户。并且您希望用户更改密码?
  • 我正在创建一个最初可以使用其公钥登录的用户;一旦他们登录,如果他们可以更改他们的密码会很好,因为如果他们使用 sudo 例如,他们将需要它。

标签: passwords ansible ubuntu-16.04


【解决方案1】:

您可以将密码设置为空行,因此passwd 不会要求输入旧密码。
您也可以将其设置为过期,以强制用户在首次登录时更改密码。

- user: name=jsmith password=""
- authorized_key: user=jsmith key={{ lookup("file", "/somepath/id_rsa.pub") }}
- command: chage -d 0 jsmith

如果空密码存在安全问题,您可以将其设置为一些随机的预定义密码,并播放欢迎 ssh 消息以在首次登录时显示它。

【讨论】:

  • 您使用的是什么操作系统?在新的 Debian 10 系统上,空密码方法对我不起作用。即使密码为空,用户仍然需要知道旧密码才能在首次登录时更改它。注意:我没有像您一样在 authorized_keys 中安装公共 ssh 密钥。但我看不出这会如何改变这种行为。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-18
  • 1970-01-01
相关资源
最近更新 更多