我目前正尝试通过 ansible playbook 禁用 ubuntu 18.04 机器的 root 登录。
如果我通过 ssh 登录,我知道我可以输入内容passwd -l root
来执行此操作。这是通过 ansible playbook 执行此操作的方法吗?
---
- hosts: all
become: true
tasks:
- name: Disable root login
raw: passwd -l root
答案1
- 引用参数密码Ansible 模块用户:
要在 Linux 系统上创建禁用的帐户,请将其设置为“!”或“*”。
这与passwd -l
. 引自男人 密码:
-l, --lock 锁定指定帐户的密码。此选项通过将密码更改为与任何可能的加密值都不匹配的值来禁用密码(它在密码开头添加“!”)。请注意,这不会禁用帐户。用户可能仍可以使用另一个身份验证令牌(例如 SSH 密钥)登录。
例如,
---
- hosts: all
become: true
tasks:
- name: Disable root login
user:
name: root
password: '!'
(未经测试)
- 参数应该可以达到同样的效果密码锁Ansible 模块用户:
锁定密码(usermod -L,...
唯一的区别在于实用性。引自男人 用户模式:
-L, --lock 锁定用户密码。这会在加密密码前面添加一个“!”,从而有效地禁用密码。您不能将此选项与 -p 或 -U 一起使用。
例如,
---
- hosts: all
become: true
tasks:
- name: Disable root login
user:
name: root
password_lock: true
(未经测试)
- 在删除 root 密码之前,请确保 Ansible 远程用户可以通过以下方式提升权限须藤。 例如,
shell> cat /etc/sudoers
...
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL