我的英语不太好,抱歉
我使用 ansible ad-hoc 设置一些用户的密码使用:
python -c“从 passlib.hash 导入 sha512_crypt;导入 getpass;打印 sha512_crypt.using(rounds=5000).hash(getpass.getpass())”
生成加密密码,我得到了这个:
$6$3k8DQBapvmIOZu4W$JMWhRB8kfqttNBI9NuRFZlPFpo6g4cb5v7obrqNaGZepxQ1AFCXdYv5IEU5lJFeHJXouyaQlJADcMtdMCjhXz0
运行 ansible ad-hoc
ansible localhost -m 用户 -a “名称=测试用户密码='$6$3k8DQBapvmIOZu4W$JMWhRB8kfqttNBI9NuRFZlPFpo6g4cb5v7obrqNaGZepxQ1AFCXdYv5IEU5lJFeHJXouyaQlJADcMtdMCjhXz0'状态=当前”
运行正常,但在 /etc/shadow
[root@localhost role_test]# grep testuser /etc/shadow testuser:k8DQBapvmIOZu4W:17420:0:99999:7:::
糟糕,只有部分加密密码,不是完整字符串
ansible localhost -m 用户 -a “名称=testuser 密码='\$6\$3k8DQBapvmIOZu4W\$JMWhRB8kfqttNBI9NuRFZlPFpo6g4cb5v7obrqNaGZepxQ1AFCXdYv5IEU5lJFeHJXouyaQlJADcMtdMCjhXz0' 状态=当前”
运行良好,但看起来不太智能。
那么,如何解决这个问题?谢谢
答案1
这是因为bash
变量替换。
尝试:
ansible localhost -m user -a 'name=testuser password=$6$3k8DQBapvmIOZu4W$JMWhRB8kfqttNBI9NuRFZlPFpo6g4cb5v7obrqNaGZepxQ1AFCXdYv5IEU5lJFeHJXouyaQlJADcMtdMCjhXz0 state=present'