团队,我们每 90 天就会进行一定的活动,在多个主机上重置密码。现在我的查询是:
我的密码包含特殊字符,是否有任何迷你 shell 脚本可以帮助查找文件中的现有密码并替换为同一主机上的任何其他 txt 文件中提到的值?
例如oldfile.txt(在文件中的任何位置包含旧密码)
newfile.properties(包含新密码以替换oldfile.txt中的密码)
我知道转义每个密码字符串值是一项非常艰巨的任务,有什么方法可以将其从新文件转移到旧文件,如上所述?
谢谢,
答案1
使用chpasswd
。它读取包含一行或多行的标准输入username:password
,并相应地更改这些用户名的密码。
如果密码未加密,它将对其进行加密。
chpasswd
-e
如果密码已经加密,则该选项很有用(强烈推荐,将密码存储为纯文本绝不是一个好主意)
您可以使用sed
或awk
或或任何其他方便的工具/脚本语言以 要求的格式perl
输出用户名和密码。username:password
chpasswd
请参阅man chpasswd
了解更多详情。