我有一个用户名列表,我需要将其密码同步到新服务器。
我将如何从 /etc/security/passwd 文件中将用户名和密码哈希提取为以下格式
username:MGURSj.F056Dj
passwd 文件采用节格式
username:
password = MGURSj.F056Dj
lastupdate = 623078865
答案1
您可以使用以下命令解析该文件awk
:
awk '
/^[[:alnum:]]*:/ {
user=substr($0, 1, index($0, ":") - 1)
}
/^ *password *=/ {
split($0, elements, " *= *");
print user ":" elements[2]
}' \
/etc/security/passwd
该脚本背后的想法是首先找到用户名行(以字母数字字符开头并包含字母数字字符,后跟冒号),然后使用“substr”函数提取该用户名。在以零个或多个空格开头,后跟字符串“ password
”,后跟零个或多个空格和等号的行中,我们将行分成等号,并打印保存的用户名和当前行的密码部分。