Rem*_*oon 3 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
Run Code Online (Sandbox Code Playgroud)
此处没有为此用户设置密码.新用户在运行playbook后在系统中创建.但是当我尝试使用新创建的用户登录时,它要求输入密码?
基本上,我的目的是了解如何/为什么要求输入密码,而不是使用新帐户登录?因为我在创建用户时没有指定密码.
我签了/ etc/passwd: -
表明 youtubeadl:x:1003:999::/home/youtubeadl:
youtubeadl 是新用户创建的
如果省略该任务的password参数user,Ansible将在"锁定"状态下创建使用状态,这意味着用户没有密码.她将无法使用密码登录,使用密码进行sudo命令或更改密码.
但由于您没有提供另一种登录身份验证方法(例如,带有附加authorized_key任务的SSH密钥),您仍然会被要求输入密码.
背景资料:
您可以通过查看/etc/shadow(存储密码信息)来查看密码状态 ,而不是/etc/passwd(尽管名称只存储用户帐户信息).有关这两个文件的历史记录,请参阅https://serverfault.com/a/116511/39608.
该条目可能如下所示:
youtubeadl:!:0:0:99999:7:::
Run Code Online (Sandbox Code Playgroud)
将!在第二场后,密码被锁定.如果您发出命令
passwd -d youtubeadl
Run Code Online (Sandbox Code Playgroud)
您将密码设置为空,密码状态设置为"已过期".该条目将如下所示:
youtubeadl::0:0:99999:7:::
Run Code Online (Sandbox Code Playgroud)
Ansible 的用户模块在幕后使用 useradd,如果未指定密码,默认情况下会禁用密码。您应该能够通过检查用户的输入来确认/etc/passwd- 如果密码被禁用,则密码字段应显示!!。
如果您想使用密码直接以该用户身份登录,则需要在模块中指定密码user。
或者,您可以使用该模块添加 SSH 密钥authorized_keys。
当然,只要用户有正确的 shell 设置,那么您应该能够su从 root 访问该用户(或从非 root 用户使用 sudo)。
| 归档时间: |
|
| 查看次数: |
3105 次 |
| 最近记录: |