Text-Formatting
從 /etc/security/passwd 獲取使用者名和密碼雜湊
我有一個使用者名列表,我需要將其密碼同步到新伺服器。
我將如何從 /etc/security/passwd 文件中提取使用者名和密碼雜湊為以下格式
username:MGURSj.F056Dj
passwd 文件是節格式
username: password = MGURSj.F056Dj lastupdate = 623078865
您可以使用以下方式解析文件
awk
:awk ' /^[[:alnum:]]*:/ { user=substr($0, 1, index($0, ":") - 1) } /^ *password *=/ { split($0, elements, " *= *"); print user ":" elements[2] }' \ /etc/security/passwd
腳本背後的想法是首先找到使用者名行 - 一個以字母數字字元開頭並包含字母數字字元,後跟冒號 - 並使用“substr”函式提取該使用者名。在以零個或多個空格開頭,後跟字元串“
password
”,後跟零個或多個空格和等號的行上,我們將行拆分為等號並列印保存的使用者名和目前行的密碼部分.