Ansible:使用Ansible' user'创建的新用户的默认密码是什么?模

时间:2016-01-30 16:32:08

标签: ansible ansible-playbook

我正在运行另一个用户的ansible-playbook模板,该模板有一个创建新用户的任务: -

---

- name: Create the application user
  user: name={{ gunicorn_user }} state=present

- name: Create the application group
  group: name={{ gunicorn_group }} system=yes state=present

- name: Add the application user to the application group
  user: name={{ gunicorn_user }} group={{ gunicorn_group }} state=present

此处没有为此用户设置密码。 新用户在运行playbook后在系统中创建。 但是当我尝试使用新创建的用户登录时,它要求输入密码?

基本上,我不打算使用新帐户登录,而是要了解如何/为什么要求输入密码?因为我在创建用户时没有指定密码。

我签了/ etc / passwd: -

显示youtubeadl:x:1003:999::/home/youtubeadl:

youtubeadl是新用户

2 个答案:

答案 0 :(得分:6)

如果省略password任务的user参数,Ansible将在"锁定" state,表示用户没有密码。她将无法使用密码登录,使用密码进行sudo命令或更改密码。

但是由于您没有提供另一种登录身份验证方法(例如,带有额外authorized_key任务的SSH密钥),您仍然会被要求输入密码。

背景资讯

您可以查看/etc/shadow(存储密码信息),而不是/etc/passwd(尽管名称只存储用户帐户信息),您可以查看自己的密码状态。有关这两个文件的历史记录,请参阅https://serverfault.com/a/116511/39608

该条目可能如下所示:

youtubeadl:!:0:0:99999:7:::

第二个字段中的!表示密码已被锁定。如果您发出命令

passwd -d youtubeadl

您将密码设置为空,密码状态设置为"已过期"。该条目将如下所示:

youtubeadl::0:0:99999:7:::

答案 1 :(得分:0)

Ansible的用户模块在封面下使用useradd,默认情况下,如果未指定密码,则禁用密码。您应该可以通过查看/etc/passwd中的用户条目来确认 - 如果密码已停用,则密码字段应显示!!

如果您想使用密码直接以该用户身份登录,则需要在user模块中指定密码。

或者,您可以使用authorized_keys模块添加SSH密钥。

当然,只要用户拥有一个合适的shell集,那么你应该能够从root用户su到该用户(或者使用非root用户的sudo)。